|
@@ -179,6 +179,7 @@ export default {
|
|
|
contentA: '',
|
|
contentA: '',
|
|
|
isShow: false,
|
|
isShow: false,
|
|
|
percentNum: 0,
|
|
percentNum: 0,
|
|
|
|
|
+ apkPath: '',
|
|
|
passvalue: false,
|
|
passvalue: false,
|
|
|
turnover: true,
|
|
turnover: true,
|
|
|
agree: false,
|
|
agree: false,
|
|
@@ -231,6 +232,12 @@ export default {
|
|
|
this.turnover = res.data;
|
|
this.turnover = res.data;
|
|
|
},
|
|
},
|
|
|
});
|
|
});
|
|
|
|
|
+ // 从“安装未知应用”设置页返回后,继续安装已下载的更新包
|
|
|
|
|
+ // #ifdef APP-PLUS
|
|
|
|
|
+ if (this.apkPath) {
|
|
|
|
|
+ this.installApk(this.apkPath, true);
|
|
|
|
|
+ }
|
|
|
|
|
+ // #endif
|
|
|
this.getEquipList();
|
|
this.getEquipList();
|
|
|
},
|
|
},
|
|
|
methods: {
|
|
methods: {
|
|
@@ -333,23 +340,7 @@ export default {
|
|
|
console.log(res);
|
|
console.log(res);
|
|
|
if (res.statusCode === 200) {
|
|
if (res.statusCode === 200) {
|
|
|
console.log('安装包下载成功,即将安装:' + 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.installApk(res.tempFilePath);
|
|
|
this.showA = false;
|
|
this.showA = false;
|
|
|
this.isShow = false;
|
|
this.isShow = false;
|
|
|
}
|
|
}
|
|
@@ -368,6 +359,55 @@ export default {
|
|
|
}
|
|
}
|
|
|
});
|
|
});
|
|
|
},
|
|
},
|
|
|
|
|
+ // 调起系统安装器安装更新包,失败时引导开启“安装未知应用”后自动重试一次
|
|
|
|
|
+ // fromGuide:从系统设置页返回后的重试,不再引导,直接提示失败原因
|
|
|
|
|
+ installApk(path, fromGuide) {
|
|
|
|
|
+ this.apkPath = '';
|
|
|
|
|
+ plus.runtime.install(
|
|
|
|
|
+ path,
|
|
|
|
|
+ { force: false },
|
|
|
|
|
+ () => {
|
|
|
|
|
+ console.log('已调起安装');
|
|
|
|
|
+ },
|
|
|
|
|
+ (e) => {
|
|
|
|
|
+ console.log('安装失败:', e);
|
|
|
|
|
+ // Android 8.0 及以上需用户在系统设置中开启“允许安装未知应用”,
|
|
|
|
|
+ // 该权限属于特殊权限,系统不会弹窗申请,只能引导用户到设置页手动开启。
|
|
|
|
|
+ // 注意:不做安装前预检查,部分机型(如小米)已授权时检查接口仍返回未授权
|
|
|
|
|
+ if (
|
|
|
|
|
+ !fromGuide &&
|
|
|
|
|
+ plus.os.name === 'Android' &&
|
|
|
|
|
+ parseFloat(plus.os.version) >= 8
|
|
|
|
|
+ ) {
|
|
|
|
|
+ this.apkPath = path;
|
|
|
|
|
+ uni.showModal({
|
|
|
|
|
+ title: '需要安装权限',
|
|
|
|
|
+ content: '请在接下来打开的页面中,允许本应用“安装未知应用”',
|
|
|
|
|
+ showCancel: false,
|
|
|
|
|
+ success: () => {
|
|
|
|
|
+ var main = plus.android.runtimeMainActivity();
|
|
|
|
|
+ var Intent = plus.android.importClass(
|
|
|
|
|
+ 'android.content.Intent',
|
|
|
|
|
+ );
|
|
|
|
|
+ var Uri = plus.android.importClass('android.net.Uri');
|
|
|
|
|
+ var intent = new Intent(
|
|
|
|
|
+ 'android.settings.MANAGE_UNKNOWN_APP_SOURCES',
|
|
|
|
|
+ );
|
|
|
|
|
+ intent.setData(Uri.parse('package:' + main.getPackageName()));
|
|
|
|
|
+ main.startActivity(intent);
|
|
|
|
|
+ },
|
|
|
|
|
+ });
|
|
|
|
|
+ } else {
|
|
|
|
|
+ uni.showModal({
|
|
|
|
|
+ title: '安装失败',
|
|
|
|
|
+ content:
|
|
|
|
|
+ '若已开启“安装未知应用”仍失败,小米手机请检查系统“纯净模式”等安装限制后重新更新',
|
|
|
|
|
+ showCancel: false,
|
|
|
|
|
+ });
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
|
|
+ );
|
|
|
|
|
+ },
|
|
|
// 登录表单提交
|
|
// 登录表单提交
|
|
|
async formSubmit() {
|
|
async formSubmit() {
|
|
|
// 1. 必填校验:用户名
|
|
// 1. 必填校验:用户名
|