uniapp 安装升级包的具体步骤是什么

在uniapp中安装升级包的具体步骤是什么?需要提前做什么准备工作吗?升级过程中有哪些注意事项?如果升级失败该如何处理?请有经验的朋友分享一下详细的操作流程。

2 回复
  1. 下载升级包(.wgt文件)
  2. 调用plus.runtime.install安装
  3. 重启应用生效

注意:iOS需通过App Store更新,不支持wgt热更新。


在 UniApp 中安装升级包通常涉及热更新或整包更新,以下是具体步骤:

1. 检测版本更新

  • 在应用启动时,调用 API 检查服务器上的最新版本号,与当前应用版本比较。
  • 示例代码(Vue 页面中):
    onLaunch() {
        // 假设从服务器获取最新版本信息
        uni.request({
            url: 'https://yourserver.com/version.json',
            success: (res) => {
                const latestVersion = res.data.version;
                const currentVersion = plus.runtime.version;
                if (latestVersion > currentVersion) {
                    // 提示用户更新
                    uni.showModal({
                        title: '更新提示',
                        content: '发现新版本,是否立即更新?',
                        success: (modalRes) => {
                            if (modalRes.confirm) {
                                this.downloadUpdate(res.data.downloadUrl); // 下载更新包
                            }
                        }
                    });
                }
            }
        });
    }
    

2. 下载更新包

  • 使用 uni.downloadFile 下载升级包(如 WGT 文件用于热更新,或 APK/IPA 用于整包更新)。
  • 示例代码:
    downloadUpdate(url) {
        uni.downloadFile({
            url: url,
            success: (downloadRes) => {
                if (downloadRes.statusCode === 200) {
                    this.installUpdate(downloadRes.tempFilePath); // 安装更新
                }
            },
            fail: (err) => {
                uni.showToast({ title: '下载失败', icon: 'none' });
            }
        });
    }
    

3. 安装更新包

  • 热更新(WGT 文件):使用 plus.runtime.install 安装 WGT 包,无需重启应用即可生效(仅适用于资源更新)。
    installUpdate(tempFilePath) {
        plus.runtime.install(tempFilePath, {
            force: false // 是否强制更新
        }, function() {
            uni.showToast({ title: '更新完成', icon: 'success' });
            plus.runtime.restart(); // 重启应用生效
        }, function(err) {
            uni.showToast({ title: '安装失败', icon: 'none' });
        });
    }
    
  • 整包更新(APK/IPA):通过系统安装器安装,需引导用户手动操作。
    installUpdate(filePath) {
        plus.runtime.openFile(filePath); // 调用系统应用打开安装包
    }
    

4. 注意事项

  • 热更新限制:仅适用于资源文件(如 JS、CSS),不能修改原生代码;需在 manifest.json 中配置应用版本。
  • 整包更新:适用于重大更新,需提交到应用商店审核。
  • 权限问题:Android 可能需申请存储权限才能安装 APK。

总结

通过检测版本、下载包、安装三步完成更新。热更新适合小版本迭代,整包更新用于大功能升级。确保服务器返回正确的版本信息和下载链接。

回到顶部