天下之事常成于困约,而败于奢靡。这篇文章主要讲述ionic android升级检查相关的知识,希望能为你提供帮助。
https://www.cnblogs.com/zxj159/p/4421578.html
坑:【ionic android升级检查】放到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);
推荐阅读
- 电商APP开发我们要注意哪些
- Android 解决RecyclerView瀑布流效果结合Glide使用时图片变形的问题
- Android二维码生成
- 获取spring的ApplicationContext几种方式
- Android 滚动RecyclerView加载图片时的流畅度优化
- APP出现内存泄漏的几种情况
- Android RecyclerView利用Glide加载大量图片into(Target)导致OOM异常
- PWA(Progressive Web App)入门系列(相关准备)
- U盘分区工具免费下载