Browse Source

fix: 自动更新逻辑调整

leo 17 hours ago
parent
commit
7f57ca62a7
3 changed files with 30 additions and 8 deletions
  1. 1 0
      manifest.json
  2. 17 4
      pages/login/login.vue
  3. 12 4
      pages/my/about/about.vue

+ 1 - 0
manifest.json

@@ -64,6 +64,7 @@
                     "<uses-permission android:name=\"android.permission.READ_LOGS\"/>",
                     "<uses-permission android:name=\"android.permission.READ_LOGS\"/>",
                     "<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>",
                     "<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>",
                     "<uses-permission android:name=\"android.permission.RECORD_AUDIO\"/>",
                     "<uses-permission android:name=\"android.permission.RECORD_AUDIO\"/>",
+                    "<uses-permission android:name=\"android.permission.REQUEST_INSTALL_PACKAGES\"/>",
                     "<uses-permission android:name=\"android.permission.UPDATE_DEVICE_STATS\"/>",
                     "<uses-permission android:name=\"android.permission.UPDATE_DEVICE_STATS\"/>",
                     "<uses-permission android:name=\"android.permission.VIBRATE\"/>",
                     "<uses-permission android:name=\"android.permission.VIBRATE\"/>",
                     "<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>",
                     "<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>",

+ 17 - 4
pages/login/login.vue

@@ -332,11 +332,24 @@ export default {
         success: (res) => {
         success: (res) => {
           console.log(res);
           console.log(res);
           if (res.statusCode === 200) {
           if (res.statusCode === 200) {
-            console.log('下载成功');
-            console.log(
-              '安装包下载成功,即将安装:' + JSON.stringify(res, null, 4),
+            console.log('安装包下载成功,即将安装:' + res.tempFilePath);
+            // 调起系统安装器安装 apk(需在系统设置中允许本应用“安装未知应用”)
+            plus.runtime.install(
+              res.tempFilePath,
+              { force: false },
+              () => {
+                console.log('已调起安装');
+              },
+              (e) => {
+                console.log('安装失败:', e);
+                uni.showModal({
+                  title: '安装失败',
+                  content:
+                    '请在系统设置中允许本应用“安装未知应用”权限后重试',
+                  showCancel: false,
+                });
+              },
             );
             );
-            plus.runtime.openFile(res.tempFilePath);
             this.showA = false;
             this.showA = false;
             this.isShow = false;
             this.isShow = false;
           }
           }

+ 12 - 4
pages/my/about/about.vue

@@ -158,9 +158,18 @@
 					success: (res) => {
 					success: (res) => {
 						console.log(res)
 						console.log(res)
 						if (res.statusCode === 200) {
 						if (res.statusCode === 200) {
-							console.log('下载成功');
-							console.log('安装包下载成功,即将安装:' + JSON.stringify(res, null, 4));
-							plus.runtime.openFile(res.tempFilePath);
+							console.log('安装包下载成功,即将安装:' + res.tempFilePath);
+							// 调起系统安装器安装 apk(需在系统设置中允许本应用“安装未知应用”)
+							plus.runtime.install(res.tempFilePath, { force: false }, () => {
+								console.log('已调起安装')
+							}, (e) => {
+								console.log('安装失败:', e)
+								uni.showModal({
+									title: '安装失败',
+									content: '请在系统设置中允许本应用“安装未知应用”权限后重试',
+									showCancel: false
+								})
+							})
 							this.showA = false
 							this.showA = false
 							this.isShow = false
 							this.isShow = false
 						}
 						}
@@ -176,7 +185,6 @@
 					this.percentNum = res.progress
 					this.percentNum = res.progress
 					if (res.progress == 100) {
 					if (res.progress == 100) {
 						console.log('下载完成了')
 						console.log('下载完成了')
-						plus.runtime.quit();
 					}
 					}
 				});
 				});
 			},
 			},