在 UniApp-X 中,App 升级通常通过以下步骤实现,包括版本检测、下载和安装。以下是具体操作流程:
1. 版本检测
- 调用后端接口,检查是否有新版本。
- 对比本地版本号与服务器返回的版本号,判断是否需要升级。
2. 下载安装包
- 使用 uni.downloadFile下载新版安装包(如.wgt资源包或.apk文件)。
- 监听下载进度,提供用户反馈。
3. 安装更新
- 对于资源包(.wgt),调用uni.installWgt进行热更新。
- 对于整包(如 .apk),调用uni.installApk(仅 Android)或引导用户手动安装。
示例代码(Android 整包更新):
// 检查版本
uni.request({
  url: 'https://your-api.com/version',
  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.downloadApk(res.data.downloadUrl);
          }
        }
      });
    }
  }
});
// 下载 APK
downloadApk(url) {
  const downloadTask = uni.downloadFile({
    url: url,
    success: (downloadRes) => {
      if (downloadRes.statusCode === 200) {
        uni.installApk({
          filePath: downloadRes.tempFilePath,
          success: () => {
            uni.showToast({ title: '安装中...', icon: 'none' });
          }
        });
      }
    }
  });
  // 监听下载进度
  downloadTask.onProgressUpdate((res) => {
    console.log(`下载进度:${res.progress}%`);
  });
}
注意事项:
- iOS 限制:不支持程序化安装,需跳转 App Store。
- 权限配置:Android 需在 manifest.json 中声明安装权限。
- 热更新规范:遵守平台政策,避免违规。
根据需求选择更新方式,并确保流程符合平台规范。