From 9ab6b38c098f857f2ce0772693142c930e4f9b6d Mon Sep 17 00:00:00 2001 From: whycq <913841844@qq.com> Date: 星期六, 30 三月 2024 10:44:03 +0800 Subject: [PATCH] # --- uni_modules/uni-upgrade-center-app/utils/check-update.js | 155 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 155 insertions(+), 0 deletions(-) diff --git a/uni_modules/uni-upgrade-center-app/utils/check-update.js b/uni_modules/uni-upgrade-center-app/utils/check-update.js new file mode 100644 index 0000000..3899a18 --- /dev/null +++ b/uni_modules/uni-upgrade-center-app/utils/check-update.js @@ -0,0 +1,155 @@ +import callCheckVersion from './call-check-version' + +// 鎺ㄨ崘鍐岮pp.vue涓娇鐢� +const PACKAGE_INFO_KEY = '__package_info__' + +export default function() { + // #ifdef APP-PLUS + return new Promise((resolve, reject) => { + callCheckVersion().then(async (e) => { + if (!e.result) return; + const { + code, + message, + is_silently, // 鏄惁闈欓粯鏇存柊 + url, // 瀹夎鍖呬笅杞藉湴鍧� + platform, // 瀹夎鍖呭钩鍙� + type // 瀹夎鍖呯被鍨� + } = e.result; + + // 姝ゅ閫昏緫浠呬负瀹炰緥锛屽彲鑷缂栧啓 + if (code > 0) { + // 鑵捐浜戝拰闃块噷浜戜笅杞介摼鎺ヤ笉鍚岋紝闇�瑕佸鐞嗕竴涓嬶紝闃块噷浜戜細鍘熸牱杩斿洖 + const { + fileList + } = await uniCloud.getTempFileURL({ + fileList: [url] + }); + if (fileList[0].tempFileURL) + e.result.url = fileList[0].tempFileURL; + + resolve(e) + + // 闈欓粯鏇存柊锛屽彧鏈墂gt鏈� + if (is_silently) { + uni.downloadFile({ + url: e.result.url, + success: res => { + if (res.statusCode == 200) { + // 涓嬭浇濂界洿鎺ュ畨瑁咃紝涓嬫鍚姩鐢熸晥 + plus.runtime.install(res.tempFilePath, { + force: false + }); + } + } + }); + return; + } + + /** + * 鎻愮ず鍗囩骇涓� + * 浣跨敤 uni.showModal + */ + // return updateUseModal(e.result) + + /** + * 鎻愮ず鍗囩骇浜� + * 瀹樻柟閫傞厤鐨勫崌绾у脊绐楋紝鍙嚜琛屾浛鎹㈣祫婧愰�傞厤UI椋庢牸 + */ + uni.setStorageSync(PACKAGE_INFO_KEY, e.result) + uni.navigateTo({ + url: `/uni_modules/uni-upgrade-center-app/pages/upgrade-popup?local_storage_key=${PACKAGE_INFO_KEY}`, + fail: (err) => { + console.error('鏇存柊寮规璺宠浆澶辫触', err) + uni.removeStorageSync(PACKAGE_INFO_KEY) + } + }) + } else if (code < 0) { + // TODO 浜戝嚱鏁版姤閿欏鐞� + console.error(message) + reject(e) + } + }).catch(err => { + // TODO 浜戝嚱鏁版姤閿欏鐞� + console.error(err.message) + reject(err) + }) + }); + // #endif +} + +/** + * 浣跨敤 uni.showModal 鍗囩骇 + */ +function updateUseModal(packageInfo) { + const { + title, // 鏍囬 + contents, // 鍗囩骇鍐呭 + is_mandatory, // 鏄惁寮哄埗鏇存柊 + url, // 瀹夎鍖呬笅杞藉湴鍧� + platform, // 瀹夎鍖呭钩鍙� + type // 瀹夎鍖呯被鍨� + } = packageInfo; + + let isWGT = type === 'wgt' + let isiOS = !isWGT ? platform.includes('iOS') : false; + let confirmText = isiOS ? '绔嬪嵆璺宠浆鏇存柊' : '绔嬪嵆涓嬭浇鏇存柊' + + return uni.showModal({ + title, + content: contents, + showCancel: !is_mandatory, + confirmText, + success: res => { + if (res.cancel) return; + + // 瀹夎鍖呬笅杞� + if (isiOS) { + plus.runtime.openURL(url); + return; + } + + uni.showToast({ + title: '鍚庡彴涓嬭浇涓�︹��', + duration: 1000 + }); + + // wgt 鍜� 瀹夊崜涓嬭浇鏇存柊 + downloadTask = uni.downloadFile({ + url, + success: res => { + if (res.statusCode !== 200) { + console.error('涓嬭浇瀹夎鍖呭け璐�', err); + return; + } + // 涓嬭浇濂界洿鎺ュ畨瑁咃紝涓嬫鍚姩鐢熸晥 + plus.runtime.install(res.tempFilePath, { + force: false + }, () => { + if (is_mandatory) { + //鏇存柊瀹岄噸鍚痑pp + plus.runtime.restart(); + return; + } + uni.showModal({ + title: '瀹夎鎴愬姛鏄惁閲嶅惎锛�', + success: res => { + if (res.confirm) { + //鏇存柊瀹岄噸鍚痑pp + plus.runtime.restart(); + } + } + }); + }, err => { + uni.showModal({ + title: '鏇存柊澶辫触', + content: err + .message, + showCancel: false + }); + }); + } + }); + } + }); +} -- Gitblit v1.9.1