var alog = uni.requireNativePlugin("AndroidLog") var apk = uni.requireNativePlugin("ApkPlug") function update(vue){ plus.runtime.getProperty(plus.runtime.appid, function(wgtInfo){ vue.$u.api.appveriosn({ appid: wgtInfo.appid, name: wgtInfo.name, versionName: wgtInfo.version, versionCode: wgtInfo.versionCode }) .then(res => { let data = res.data; if(data.isUpload && data.wgtUrl){ wgtUpdate(data) }else if (data.isUpload && data.pkgUrl){ pkgUpdate(data); }else{ updateNone(); } }) .catch(err => { }); }); } function updateNone(){ plus.nativeUI.toast('已经是最新版本'); } function wgtUpdate(data){ uni.showModal({ title: "更新提示", content: '有新版本:' + data.note, success: (res) => { if (res.confirm) { uni.downloadFile({ url: data.wgtUrl, success: (downloadResult) => { if (downloadResult.statusCode === 200) { plus.runtime.install(downloadResult.tempFilePath, { force: false }, function() { plus.runtime.restart(); }, function(e) { plus.nativeUI.toast('更新版本失败'); }); }else { plus.nativeUI.toast('下载版本失败'); } } }); } } }) } function pkgUpdate(data){ alog.info({msg: '全量更新' + JSON.stringify(data)}) uni.showModal({ title: "更新提示", content: '有新版本:' + data.note, success: (res) => { if (res.confirm) { // plus.runtime.openURL(data.pkgUrl); let downloadTask = uni.downloadFile({ url: data.pkgUrl, success: (downloadResult) => { if (downloadResult.statusCode === 200) { alog.info({msg: 'apk下载完成:' + JSON.stringify(downloadResult)}) // plus.runtime.install(downloadResult.tempFilePath, { // force: false // }, function() { // plus.runtime.restart(); // }, function(e) { // plus.nativeUI.toast('更新版本失败'); // }); // apk.instll(downloadResult.tempFilePath); }else { plus.nativeUI.toast('下载版本失败'); } } }); downloadTask.onProgressUpdate((res) => { alog.info({msg: '下载进度' + res.progress}); alog.info({msg: '已经下载的数据长度' + res.totalBytesWritten}); alog.info({msg: '预期需要下载的数据总长度' + res.totalBytesExpectedToWrite}); }); } } }) } export default update