天天看点

ionic APP 版本升级策略(IOS&ANDROID)

混合APP升级策略:

Android版实现直接下载apk安装升级,Ios版实现跳转到苹果商店进行更新升级

仅贴关键代码段:

if ($rootScope.platform == 'ios') {
            console.log('访问appstore进行更新');
            console.log(versionInfo.downloadUrl);
            $window.open(versionInfo.downloadUrl);//跳转到APP商店这样即可
            return
          }
           
var targetPath = "/sdcard/Download/"+verisonInfo.versionId + ".apk"; //APP下载存放的路径,可以使用cordova file插件进行相关配置;
  var trustHosts = true;
  var options = {};
  $cordovaFileTransfer.download(url, targetPath, options, trustHosts).then(function (result) {
    // 打开下载下来的APP
    $cordovaFileOpener2.open(
      targetPath,
      'application/vnd.android.package-archive').then(function () {
      // 成功
      console.log('存储为:' + targetPath);
    }, function (err) {
      // 错误
      console.log(err);
    });
    $ionicLoading.hide();
  }, function (err) {
    alert('下载失败');
  }, function (progress) {
    //进度,这里使用文字显示下载百分比
    $timeout(function () {
      var downloadProgress = (progress.loaded / progress.total) * 100;
      $ionicLoading.show({
        template: "已经下载:" + Math.floor(downloadProgress) + "%"
      });
      if (downloadProgress > 99) {
        $ionicLoading.hide();
      }
    })
  });
} else {
  // 取消更新
}
           

注意!!!

APK的下载存放路径必须是sd卡内,如果放进应用内文件路径下,打开apk时,会报如下错误:解析程序包时出现问题.

ionic APP 版本升级策略(IOS&ANDROID)