4***@qq.com
4***@qq.com
  • 发布:2023-12-08 17:04
  • 更新:2023-12-08 17:04
  • 阅读:272

我使用官方的App升级中心uni-upgrade-center内更插件,为什么我IOS环境的会调取到安卓环境下的的更新包?

分类:插件市场

我的调用代码如下:
// #ifdef APP-PLUS
console.log('版本号》》', plus.runtime.version);
// if(util.isAndroidSys()){
checkUpdate();
// }
req.savePushCid();
// #endif

以下是官方js包内的代码:
import callCheckVersion from './call-check-version'

// 推荐再App.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)  

            // 静默更新,只有wgt有  
            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风格  
             */  
            console.log('自动更新返回的参数>>>', e.result);  
            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) {  
            // TODO 云函数报错处理  
            console.error(message)  
            return reject(e)  
        }  
        return resolve(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) {  
                        //更新完重启app  
                        plus.runtime.restart();  
                        return;  
                    }  
                    uni.showModal({  
                        title: '安装成功是否重启?',  
                        success: res => {  
                            if (res.confirm) {  
                                //更新完重启app  
                                plus.runtime.restart();  
                            }  
                        }  
                    });  
                }, err => {  
                    uni.showModal({  
                        title: '更新失败',  
                        content: err  
                            .message,  
                        showCancel: false  
                    });  
                });  
            }  
        });  
    }  

    });
    }

2023-12-08 17:04 负责人:无 分享
已邀请:

要回复问题请先登录注册