deviceType.js 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. export default function ({req}, inject) {
  2. let deviceType = {}
  3. deviceType.ios = false
  4. deviceType.android = false
  5. deviceType.pc = false
  6. deviceType.ios = false
  7. deviceType.wx = false
  8. deviceType.app = false
  9. deviceType.spider = false
  10. let cookie = '', ua = ''
  11. /** 通过UA判断设备类型 **/
  12. if (req && req.headers) {
  13. ua = req && req.headers && req.headers['user-agent'] || ''
  14. } else if (window && window.navigator){
  15. ua = window.navigator.userAgent
  16. }
  17. if (/(iPhone|iPad|iPod|iOS)/i.test(ua)) {
  18. deviceType.ios = true
  19. } else if (/(Android)/i.test(ua)) {
  20. deviceType.android = true
  21. } else {
  22. deviceType.pc = true
  23. }
  24. /** 通过cookie 判断是不是APP **/
  25. if (req && req.headers) {
  26. cookie = req.headers.cookie || ''
  27. } else if (document){
  28. cookie = document.cookie
  29. }
  30. if (/(x_app)/i.test(cookie)) {
  31. deviceType.app = true
  32. } else {
  33. deviceType.app = false
  34. }
  35. /** 判断是不是 微信 **/
  36. if (/(MicroMessenger)/i.test(ua)) {
  37. deviceType.wx = true
  38. }
  39. /** 判断是不是 蜘蛛 **/
  40. if (/(spider)/i.test(ua)) {
  41. deviceType.spider = true
  42. }
  43. deviceType.isMobile = function() {
  44. return deviceType.ios || deviceType.android
  45. }
  46. deviceType.isPC = function() {
  47. return deviceType.pc
  48. }
  49. deviceType.isWx = function() {
  50. return deviceType.wx
  51. }
  52. inject && inject('deviceType', deviceType)
  53. return deviceType
  54. }