deviceType.js 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. import Vue from 'vue'
  2. // import DeviceType from './utils/deviceType'
  3. // Vue.use(DeviceType, { $axios, redirect, req, ...args })
  4. export default function ({req}, inject) {
  5. let deviceType = {}
  6. deviceType.ios = false
  7. deviceType.android = false
  8. deviceType.pc = false
  9. deviceType.ios = false
  10. deviceType.wx = false
  11. deviceType.ua = ''
  12. if (req && req.headers) {
  13. deviceType.ua = req && req.headers && req.headers['user-agent'] || ''
  14. } else if (window && window.navigator){
  15. deviceType.ua = window.navigator.userAgent
  16. }
  17. if (/(iPhone|iPad|iPod|iOS)/i.test(deviceType.ua)) {
  18. deviceType.ios = true
  19. } else if (/(Android)/i.test(deviceType.ua)) {
  20. deviceType.android = true
  21. } else {
  22. deviceType.pc = true
  23. }
  24. if (/(MicroMessenger)/i.test(deviceType.ua)) {
  25. deviceType.wx = true
  26. }
  27. deviceType.isIos = function() {
  28. return deviceType.ios
  29. }
  30. deviceType.isAndroid= function() {
  31. return deviceType.android
  32. }
  33. deviceType.isMobile = function() {
  34. return deviceType.ios || deviceType.android
  35. }
  36. deviceType.isPC = function() {
  37. return deviceType.pc
  38. }
  39. deviceType.isWx = function() {
  40. return deviceType.wx
  41. }
  42. console.log('deviceType:', deviceType)
  43. inject('deviceType', deviceType)
  44. }