坑:
放到cordova.file.DataDirectory下载异常? 只好cordova.file.externalDataDirectory
代码
// 检查更新 $scope.appUpdateCheck = function(init) { var init = init || 0; // appUpdateService.showUpdateConfirm({}); // return; VersionService.get({ platform: ionic.Platform.platform() }, function(resp) { // alert(JSON.stringify(resp)) if (resp.code == '000') { // alert(resp.data.version) // alert($cordovaAppVersion.getVersionNumber()) // alert($cordovaAppVersion.getVersionCode()) cordova.getAppVersion.getVersionNumber(function(version) { // alert(version) if (version == resp.data.version) { if (!init) { messageService.show('当前已是最新版本'); } return; } $scope.hasNewVersion = 1; $scope.device_items[1].name = $sce.trustAsHtml('升级检查 - New!'); if (!init) { appUpdateService.showUpdateConfirm(resp.data); } }); } else { messageService.show(resp.msg); } }); }
; (function(angular) { angular.module('mobile') .factory('appUpdateService', ['$cordovaFileTransfer', '$cordovaFileOpener2', '$ionicPopup', '$ionicLoading', '$timeout', 'messageService', function($cordovaFileTransfer, $cordovaFileOpener2, $ionicPopup, $ionicLoading, $timeout, messageService) { // 显示是否更新对话框 function showUpdateConfirm(versionInfo) { var versionInfo = versionInfo; var downloadUrl = versionInfo.url, updateLog = versionInfo.upgradeinfo, targetPath = 'file:///storage/sdcard0/Download/XiaoShuTong.apk' //APP下载存放的路径,可以使用cordova file插件进行相关配置 // TODO 测试数据 // downloadUrl = 'http://imtt.dd.qq.com/16891/006473EB7690D8B89DEBD9613BF9E40E.apk?fsname=com.tencent.mm_6.6.0_1200.apk' // updateLog = '1. 更新模块升级2. 修复1个bug' targetPath = cordova.file.externalDataDirectory + 'XiaoShuTong.apk' var confirmPopup = $ionicPopup.confirm({ title: '版本升级', template: updateLog, //从服务端获取更新的内容 cancelText: '取消', okText: '升级' }); confirmPopup.then(function(res) { if (res) { // if (ionic.Platform.isIOS()) { // // 提示进入 APP store // messageService.show('请到App Store升级.'); // } if (ionic.Platform.isAndroid() && downloadUrl != '') { $ionicLoading.show({ template: "已经下载:0%" }); $cordovaFileTransfer.download(downloadUrl, targetPath, null, true).then(function(result) { // 打开下载下来的APP $cordovaFileOpener2.open(targetPath, 'application/vnd.android.package-archive').then(function() { // 成功 }, function(err) { // 错误 // alert('安装文件打开失败, 请尝试手动安装.'); messageService.show('安装文件打开失败, 请尝试手动安装.'); }); $ionicLoading.hide(); }, function(error) { $ionicLoading.hide(); // alert(JSON.stringify(error)); // messageService.show(JSON.stringify(error)); messageService.show('请设置应用文件操作权限, 然后重试.'); }, function(progress) { var downloadProgress = Math.floor((progress.loaded / progress.total) * 100); if (downloadProgress > 0) { $ionicLoading.show({ template: '已经下载:' + downloadProgress + '%' }); } if (downloadProgress > 99) { $ionicLoading.hide(); } }); } } else { // 取消更新 $ionicLoading.hide(); } }); } // return return { showUpdateConfirm: showUpdateConfirm } } ]); })(angular);