App.vue 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128
  1. <script>
  2. export default {
  3. onLaunch: function() {
  4. // #ifdef MP
  5. let sysInfo=uni.getSystemInfoSync(),menuInfo=uni.getMenuButtonBoundingClientRect();
  6. let offsetBottom=menuInfo.top-sysInfo.statusBarHeight;
  7. if(sysInfo.system.indexOf('iOS')!==-1){
  8. this.$store.commit('setPlatform','ios');
  9. }
  10. else if(sysInfo.system.indexOf('Android')!==-1){
  11. this.$store.commit('setPlatform','android');
  12. }
  13. else{
  14. this.$store.commit('setPlatform','other');
  15. }
  16. this.$store.commit('setStatusBarHeight',sysInfo.statusBarHeight);
  17. this.$store.commit('setTopbarOffsetHeight',sysInfo.statusBarHeight + offsetBottom*2 + menuInfo.height);
  18. this.$store.commit('setTabBarHeight',(this.$util.hasSafeArea()?68:20)+106);
  19. var self = this
  20. //全局分享
  21. uni.onAppRoute(()=>{
  22. const pages=getCurrentPages();
  23. let page=pages[pages.length-1];
  24. if(page.route!=='pages/friends/user'){
  25. let inviteCode=uni.getStorageSync('userInfo')?JSON.parse(uni.getStorageSync('userInfo')).inviteCode:'';
  26. uni.getImageInfo({
  27. src:'https://zhenyanapp-gen.oss-cn-qingdao.aliyuncs.com/wechat-mini-pro/app-share.png',
  28. success: (res) => {
  29. page.onShareAppMessage=()=>{
  30. return{
  31. title:'我在糖果公园等你哟~',
  32. path:`pages/friends/friends?invite=${inviteCode}`,
  33. imageUrl:res.path
  34. }
  35. }
  36. }
  37. })
  38. }
  39. })
  40. // 获取小程序更新机制兼容
  41. if (uni.canIUse('getUpdateManager')) {
  42. const updateManager = wx.getUpdateManager()
  43. //1. 检查小程序是否有新版本发布
  44. updateManager.onCheckForUpdate(function(res) {
  45. // 请求完新版本信息的回调
  46. if (res.hasUpdate) {
  47. //检测到新版本,需要更新,给出提示
  48. uni.showModal({
  49. title: '更新提示',
  50. content: '检测到新版本,是否下载新版本并重启小程序?',
  51. success: function(res) {
  52. if (res.confirm) {
  53. //2. 用户确定下载更新小程序,小程序下载及更新静默进行
  54. uni.showLoading();
  55. //静默下载更新小程序新版本
  56. updateManager.onUpdateReady(function() {
  57. uni.hideLoading()
  58. //新的版本已经下载好,调用 applyUpdate 应用新版本并重启
  59. updateManager.applyUpdate()
  60. })
  61. updateManager.onUpdateFailed(function() {
  62. // 新的版本下载失败
  63. uni.showModal({
  64. title: '已经有新版本了哟~',
  65. content: '新版本已经上线啦~,请您删除当前小程序,重新搜索打开哟~',
  66. })
  67. })
  68. } else if (res.cancel) {
  69. //用户点击取消按钮的处理,如果需要强制更新,则给出二次弹窗,如果不需要,则这里的代码都可以删掉了
  70. uni.showModal({
  71. title: '温馨提示~',
  72. content: '本次版本更新涉及到新的功能添加,旧版本无法正常访问的哦~',
  73. showCancel: false, //隐藏取消按钮
  74. confirmText: "确定更新", //只保留确定更新按钮
  75. success: function(res) {
  76. if (res.confirm) {
  77. //下载新版本,并重新应用
  78. uni.showLoading();
  79. //静默下载更新小程序新版本
  80. updateManager.onUpdateReady(function() {
  81. uni.hideLoading()
  82. //新的版本已经下载好,调用 applyUpdate 应用新版本并重启
  83. updateManager.applyUpdate()
  84. })
  85. updateManager.onUpdateFailed(function() {
  86. // 新的版本下载失败
  87. uni.showModal({
  88. title: '已经有新版本了哟~',
  89. content: '新版本已经上线啦~,请您删除当前小程序,重新搜索打开哟~',
  90. })
  91. })
  92. }
  93. }
  94. })
  95. }
  96. }
  97. })
  98. }
  99. })
  100. } else {
  101. // 如果希望用户在最新版本的客户端上体验您的小程序,可以这样子提示
  102. wx.showModal({
  103. title: '提示',
  104. content: '当前微信版本过低,无法使用该功能,请升级到最新微信版本后重试。'
  105. })
  106. }
  107. // #endif
  108. },
  109. onShow: function() {
  110. console.log('App Show')
  111. },
  112. onHide: function() {
  113. console.log('App Hide')
  114. },
  115. onUnload() {
  116. console.log('im logout')
  117. uni.$TUIKit.logout();
  118. uni.$TUIKit.destroy();
  119. },
  120. }
  121. </script>