App.vue 3.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. <template>
  2. <page style="color: #007AFF;"></page>
  3. </template>
  4. <script>
  5. export default {
  6. globalData: {
  7. detail: null,
  8. choosedAddress: null,
  9. topHeight: 0,
  10. },
  11. async onLaunch() { //app 初始化
  12. let f = uni.canIUse('getUpdateManager') // 获取小程序更新机制兼容
  13. if (f) {
  14. const _u = uni.getUpdateManager()
  15. _u.onCheckForUpdate(res => { // // 请求完新版本信息的回调
  16. console.log('版本信息', res.hasUpdate)
  17. if (res.hasUpdate) { // 是否有新的版本
  18. _u.onUpdateReady(() => { // 当新版本下载完成,会进行回调
  19. uni.showModal({
  20. title: '更新提示',
  21. content: '新版本已发布,请重启当前应用!',
  22. showCancel: false,
  23. success(c_res) {
  24. if (c_res.confirm) {
  25. _u.applyUpdate() // 当新版本下载完成,调用该方法会强制当前小程序应用上新版本并重启
  26. }
  27. }
  28. })
  29. })
  30. }
  31. })
  32. _u.onUpdateFailed(() => { // 当新版本下载失败,会进行回调
  33. uni.showModal({
  34. title: '发现新版本',
  35. content: '请删除当前小程序,重新搜索打开'
  36. })
  37. })
  38. }
  39. uni.loading = () => uni.showLoading({
  40. mask: true,
  41. title: '加载中'
  42. })
  43. if (!uni.getStorageSync('warn')) {
  44. uni.setStorageSync('warn', 'false')
  45. }
  46. uni.onNetworkStatusChange(({
  47. networkType,
  48. isConnected
  49. }) => { //监听网络类型变化
  50. if (isConnected) { //当网络类型却换后
  51. if (!this.$verified()) { //如果用户未登录,就触发 初始化方法。用户用户初次打开小程序时没有网络,随即又有网络的情况
  52. // this.$store.dispatch('onLaunch')
  53. }
  54. if ('2g3g'.indexOf(networkType) !== -1) {
  55. uni.showToast({
  56. title: '网络似乎不太稳定',
  57. icon: 'none'
  58. })
  59. }
  60. } else {
  61. uni.showToast({
  62. title: '似乎已经断开网络连接',
  63. icon: 'none'
  64. })
  65. }
  66. this.$store.commit('CHANGENETWORKSTATUS', networkType)
  67. })
  68. // uni.showLoading({ title: '加载中', mask: true }) //显示loading
  69. const [, {
  70. networkType
  71. }] = await uni.getNetworkType(); //获取网络类型,给出相应的提示
  72. // console.log('网络状态',networkType)
  73. this.$store.commit('CHANGENETWORKSTATUS', networkType) //获取网络类型并将状态存在 store 里
  74. //获取状态栏及胶囊高度
  75. let menuButtonObject = uni.getMenuButtonBoundingClientRect(); //获取菜单按钮(右上角胶囊按钮)的布局位置信息。坐标信息以屏幕左上角为原点。
  76. },
  77. async onHide() {
  78. uni.hideLoading() //app hide 时隐藏loading
  79. }
  80. }
  81. </script>
  82. <style>
  83. @import 'common/styles/main.css'; //引入 ColorUI 组件库主样式
  84. @import 'common/styles/icon.css'; //引入 ColorUI 组件库图标样式
  85. @import 'common/styles/animation.css'; //引入 ColorUI 组件库动画样式
  86. page {
  87. //uniapp 中的 page 标签相当于 html 中的 body, 默认高度为 auto, 但是高度为 100% 更利于 app 布局,你也可以在 page 中设置一些全局样式,比如全局背景色
  88. background: #FFFFFF;
  89. height: 100%;
  90. }
  91. </style>