ionic android升级检查
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);
ionic android升级检查的更多相关文章
- Ionic Android开发环境搭建 下
上篇 Ionic 安装完成了,由于要开发Android,所以必不可少需要继续搭建Android开发环境. 首先,下载并安装JDK.然后配置一下环境变量. 接着,下载并安装Android SDK.下载过 ...
- Ionic android 底部tabs
ionic android tabs 默认显示在上部,如果要跟苹果一起统一在底部,那么可以在app.js添加配置 .config(function($ionicConfigProvider) { $i ...
- Android 内存检查
Android 内存检查 本文简单介绍了如何使用 DDMS 和 MAT 工具来对 android 进行内存检查,了解 android 内存的具体占用情况. 步骤1. 使用 DDMS 观察内存的使用情况 ...
- Ionic app升级插件开发
终于走到了写插件的这个地方了,插件的过程: 1.安装plugman插件,管理我们的程序 npm install -g plugman 2.创建插件项目appUpgrade,cd 到你的目标目录下,执行 ...
- android升级adt和sdk之后无法识别SDK Location的一个解决方式
我把android的adt和sdk从4.0升级到4.2,发现eclipse的android设置里面原来列出的各种api level的platform消失了,而且无法新建android工程.而且检查过了 ...
- [Android] 升级了新的android studio之后 发生如下的报错,The following classes could not be instantiated:
The following classes could not be instantiated:- android.support.v4.widget.DrawerLayout (Open Class ...
- Android 代码检查工具SonarQube
http://blog.csdn.net/rain_butterfly/article/details/42170601 代码检查工具能帮我们检查一些隐藏的bug,代码检查工具中sonar是比较好的一 ...
- Ionic Android开发环境搭建 上
首先,需要下载并安装Node.js. 什么是Node.js?百科上说:Node.js是一个基于Chrome JavaScript运行时建立的平台, 用于方便地搭建响应速度快.易于扩展的网络应用.Nod ...
- Android Api 检查參数状态Api
转载请注明出处:http://blog.csdn.net/droyon/article/details/39938677 在进行Android应用程序开发中,android提供了一个非常好的工具类,来 ...
随机推荐
- JVM笔记(虚拟机各内存的介绍)
JVM笔记 java代码执行分为两部分:javac编译 java执行 代码并不是由上往下执行的,会经过编译期重排序进行优化,存在依赖关系的代码不会被重排序,保证了代码最终执行结果的正确性! j ...
- netty02(接受消息以后进行返回)
到这里接着上一篇netty01开始,没看过的可以点进去看一下再来 首先来说一下 ByteBuf 这个类吧,这个类是netty里面提供的,接受信息和返回信息格式都是它: ByteBuf 是一个抽 ...
- log4j快速入门
转自:http://blog.csdn.net/yanwushu/article/details/7581255 1.引言 在应用程序中添加日志记录总的来说基于三个目的: .监视代码中变量的变化情况, ...
- quratz启动流程
SchedulerFactory在创建quartzScheduler的过程中,将会读取配置参数,初始化各个组件. 1.启动流程图 2.ThreadPool 一般是使用SimpleThreadPool, ...
- oracle的DBMS_JOB相关知识
http://langgufu.iteye.com/blog/1179235 查看当前定时任务 select job,next_date,next_sec,failures,broken from u ...
- MATLAB的一些使用的快捷键整理
1.用TAB键可以实现缩进,怎么缩进和取消缩进呢? 在使用脚本编写matlab的程序时,我们通过选中需要的程序,按下tab键就能缩进整个程序.同样的,当我们需要取消缩进时,我们的快捷方法就是:shif ...
- Spring中 PROPAGATION_REQUIRED 解释 事物是在一个方法里调用其他的方法,一起成功或者一起失败,是方法之间的关系,而不是某一个方法内部的问题。而且要以抛异常的方式来表明方法的失败,以此来导致事物起作用,大家全失败。
事务传播行为种类 Spring在TransactionDefinition接口中规定了7种类型的事务传播行为, 它们规定了事务方法和事务方法发生嵌套调用时事务如何进行传播: 事务传播行为类型 事务传播 ...
- hive有关函数
1.窗口函数2015年4月份购买过的顾客及总人数 select distinct name,count(1) over() as cnt from test_window_yfwhere substr ...
- Java大数相加-hdu1047
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1047 题目描述: 题意有点绕,但是仔细的读了后就发现是处理大数相加的问题.注意:输入数据有多组,每组输 ...
- centos6.5安装/升级到python2.7
https://www.cnblogs.com/harrymore/p/9024287.html