https://www.cnblogs.com/zxj159/p/4421578.html

坑:

放到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('升级检查<font style="color:#FD1F38"> - New!</font>'); 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. 更新模块升级<br>2. 修复1个bug<br>'
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);

最新文章

  1. [LeetCode] Valid Perfect Square 检验完全平方数
  2. .Net(C#)最简单的邮件发送案例
  3. Project和Module的介绍
  4. UIBezierPath IOS贝塞尔曲线
  5. android中使用html作布局文件
  6. OpenGL 4.0 GLSL 实现 投影纹理映射(Projective Texture Mapping) (转)
  7. 仿战旗tv
  8. java转义字符(转载)
  9. Arduino 板子 COM 接口找不到设备
  10. IOS app启动过程
  11. web应用怎么跳过某些Filter
  12. UnicodeDecodeError: &#39;utf-8&#39; codec can&#39;t decode byte 0xce in position 22: invalid continuation byte
  13. Win7 32位系统下Sublime text 3的安装以及配置C/C++、java、python的开发环境方法
  14. 201671010142 &lt;&lt;面向对象程序设计(Java) 实验十五 线程 感悟和总结&gt;&gt;
  15. pop() 删除掉数组的最后一个元素
  16. Bootstrap 按钮颜色
  17. vcftools报错:Writing PLINK PED and MAP files ... Error: Could not open temporary file.解决方案
  18. Java 中常见的各种排序算法汇总
  19. 饭否Oauth记录
  20. bzoj4753[JSOI2016]最佳团体

热门文章

  1. MySQL高级02
  2. java反射对实体类取值和赋值
  3. Scala-Unit4-Scala数组/集合
  4. Date、Calendar、DateFormat类
  5. macOS packages安装时的降级处理
  6. python简单名片管理系统
  7. C# Upload
  8. XamarinAndroid组件教程设置动画的设置插值器
  9. Vue实现用户自定义上传头像裁剪
  10. C#选择文件、选择文件夹、打开文件