upApp.js 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139
  1. import store from '../store/index.js'
  2. const baseurl = store.state.baseURL
  3. const getUpAppUrl = 'https://grayscale.bet/index/version'
  4. const iosAppStroeUrl =
  5. 'https://apps.apple.com/cn/app/%E4%BA%91%E5%8A%9B%E5%95%86%E5%9F%8E/id1625060402';
  6. // 获取app是否需要升级
  7. export function getUpApp() {
  8. let that = this
  9. // 获取当前运行系统
  10. let hj = uni.getSystemInfoSync().platform;
  11. // 获取仓库app数据对象
  12. let app = store.state.isShowIllegality;
  13. // 当前系统为安卓则显示数据
  14. if (hj === 'android') {
  15. // 设置默认显示数据
  16. app = true;
  17. // store.commit('changeState', {
  18. // name: 'app',
  19. // value: app
  20. // });
  21. }
  22. // console.log(getUpAppUrl, '123456');
  23. uni.request({
  24. url: getUpAppUrl,
  25. method: 'GET',
  26. data: {},
  27. success: res => {
  28. let r = res.data;
  29. console.log(r, '123456');
  30. plus.runtime.getProperty(plus.runtime.appid, function(wgtinfo) {
  31. // 保存线上版本号
  32. let version = r.data.app;
  33. // 获取线上版本
  34. const arr = r.data.version.split('.');
  35. // 获取当前系统
  36. const arr1 = wgtinfo.version.split('.');
  37. for (let i = 0; i < arr.length; i++) {
  38. // 线上版本号
  39. const x = +arr[i];
  40. // 线下版本号
  41. const y = +arr1[i];
  42. console.log(arr, arr1, "版本号")
  43. // 判断当前版本是否为小于等于线上版本
  44. if (x >= y) {
  45. console.log('dashabi2020')
  46. console.log(x, y)
  47. // 只有ios才需要显示
  48. if (hj === 'ios') {
  49. // 设置显示数据
  50. app = true;
  51. store.commit('changeState', {
  52. name: 'app',
  53. value: app
  54. });
  55. }
  56. // 当版本较低时更新数据
  57. if (x > y) {
  58. uni.showModal({
  59. title: '提示',
  60. content: '請更新應用',
  61. confirmText: '確認',
  62. showCancel: false,
  63. success(e) {
  64. if (hj === 'ios') {
  65. }
  66. if (hj === 'android') {
  67. downApp(version);
  68. }
  69. }
  70. })
  71. // uni.showModal({
  72. // title: this.$t('popup.ts'),
  73. // content: this.$t('popup.qgxyy'),
  74. // confirmText: this.$t('popup.qr'),
  75. // cancelText: this.$t('popup.qx'),
  76. // showCancel: false,
  77. // success(e) {
  78. // if (hj === 'ios') {
  79. // // plus.runtime.openURL(
  80. // // iosAppStroeUrl
  81. // // );
  82. // }
  83. // if (hj === 'android') {
  84. // // plus.runtime.openURL('http://lxscimg.liuniu946.com/lxscV' + version + '.apk');
  85. // downApp(version);
  86. // }
  87. // }
  88. // });
  89. return;
  90. }
  91. }
  92. }
  93. });
  94. },
  95. fail: res => {
  96. console.log(res, 'shib');
  97. }
  98. });
  99. }
  100. // 下载app
  101. export function downApp(version) {
  102. console.log(version)
  103. plus.nativeUI.showWaiting('下載升級包...');
  104. plus.downloader
  105. .createDownload(version, {}, (d, status) => {
  106. if (status == 200) {
  107. installApp(d.filename); // 安装app
  108. } else {
  109. plus.nativeUI.alert('下載升級包失敗!');
  110. }
  111. plus.nativeUI.closeWaiting();
  112. })
  113. .start();
  114. }
  115. // 安装app
  116. export function installApp(path) {
  117. plus.nativeUI.showWaiting('安裝升級包...');
  118. plus.runtime.install(
  119. path, {},
  120. function() {
  121. plus.nativeUI.closeWaiting();
  122. uni.showToast({
  123. icon: 'none',
  124. title: '升級完成,準備重新載入'
  125. });
  126. setTimeout(_ => {
  127. uni.hideToast();
  128. plus.runtime.restart();
  129. }, 1000);
  130. },
  131. function(e) {
  132. plus.nativeUI.closeWaiting();
  133. plus.nativeUI.alert('安裝升級包失敗[' + e.code + ']:' + e.message);
  134. }
  135. );
  136. }