main.js 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. // 兼容 IE
  2. // https://github.com/zloirock/core-js/blob/master/docs/2019-03-19-core-js-3-babel-and-a-look-into-the-future.md#babelpolyfill
  3. import 'core-js/stable'
  4. import 'regenerator-runtime/runtime'
  5. import Vue from 'vue'
  6. import App from './App.vue'
  7. import router from './router'
  8. import store from './store'
  9. import Calendar from 'vue-mobile-calendar'
  10. // 设置 js中可以访问 $cdn
  11. import { $cdn } from '@/config'
  12. Vue.prototype.$cdn = $cdn
  13. // 全局引入按需引入UI库 vant
  14. import '@/plugins/vant'
  15. // 引入全局样式
  16. import '@/assets/css/index.scss'
  17. // 移动端适配
  18. import 'lib-flexible/flexible.js'
  19. // 引入移动端调试
  20. import '@/utils/vconsole.js'
  21. // filters
  22. import './filters'
  23. // 全局注册微信js-sdk
  24. import WechatPlugin from '@/utils/wechatPlugin'
  25. import '@/assets/css/player.css'
  26. import VideoPlayer from 'vue-video-player'
  27. import 'video.js/dist/video-js.css' // videoJs的样式
  28. import 'vue-video-player/src/custom-theme.css' // vue-video-player的样式
  29. Vue.use(WechatPlugin)
  30. Vue.use(VideoPlayer)
  31. import VueAudio from 'vue-audio-better'
  32. Vue.use(VueAudio)
  33. // 引入本地存储
  34. import { storage, sessionStorage } from '@/utils/storage'
  35. import hevueImgPreview from '@/components/hevue-img-preview'
  36. const echarts = require('echarts')
  37. Vue.prototype.$echarts = echarts
  38. import '@/permission' // permission control
  39. Vue.prototype.$storage = storage
  40. Vue.prototype.$sessionStorage = sessionStorage
  41. const ua = navigator.userAgent.toLowerCase()
  42. const isWeChat = /micromessenger/i.test(ua)
  43. // 额外验证:检查微信JSBridge
  44. if (isWeChat && typeof WeixinJSBridge === 'undefined') {
  45. // 这种情况可能发生在某些特殊微信版本或modified UA
  46. console.warn('检测到微信UA但无JSBridge,可能是不完整的微信环境')
  47. }
  48. console.log('$isWechat', isWeChat)
  49. // 判断是否为微信浏览器
  50. Vue.prototype.$isWechat = isWeChat
  51. // 动态设置title
  52. Vue.use(require('vue-wechat-title'))
  53. .use(Calendar)
  54. .use(hevueImgPreview)
  55. Vue.config.productionTip = false
  56. new Vue({
  57. el: '#app',
  58. router,
  59. store,
  60. render: h => h(App)
  61. })