123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158 |
- import callCheckVersion from './call-check-version'
- const PACKAGE_INFO_KEY = '__package_info__'
- export default function() {
-
- 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)
-
- if (is_silently) {
- uni.downloadFile({
- url: e.result.url,
- success: res => {
- if (res.statusCode == 200) {
-
- plus.runtime.install(res.tempFilePath, {
- force: false
- });
- }
- }
- });
- return;
- }
-
-
-
- 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)
- }
- })
-
- return
- } else if (code < 0) {
-
- console.error(message)
- return reject(e)
- }
- return resolve(e)
- }).catch(err => {
-
- console.error(err.message)
- reject(err)
- })
- });
-
- }
- 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
- });
-
- downloadTask = uni.downloadFile({
- url,
- success: res => {
- if (res.statusCode !== 200) {
- console.error('下载安装包失败', err);
- return;
- }
-
- plus.runtime.install(res.tempFilePath, {
- force: false
- }, () => {
- if (is_mandatory) {
-
- plus.runtime.restart();
- return;
- }
- uni.showModal({
- title: '安装成功是否重启?',
- success: res => {
- if (res.confirm) {
-
- plus.runtime.restart();
- }
- }
- });
- }, err => {
- uni.showModal({
- title: '更新失败',
- content: err
- .message,
- showCancel: false
- });
- });
- }
- });
- }
- });
- }
|