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升级检查的更多相关文章

  1. Ionic Android开发环境搭建 下

    上篇 Ionic 安装完成了,由于要开发Android,所以必不可少需要继续搭建Android开发环境. 首先,下载并安装JDK.然后配置一下环境变量. 接着,下载并安装Android SDK.下载过 ...

  2. Ionic android 底部tabs

    ionic android tabs 默认显示在上部,如果要跟苹果一起统一在底部,那么可以在app.js添加配置 .config(function($ionicConfigProvider) { $i ...

  3. Android 内存检查

    Android 内存检查 本文简单介绍了如何使用 DDMS 和 MAT 工具来对 android 进行内存检查,了解 android 内存的具体占用情况. 步骤1. 使用 DDMS 观察内存的使用情况 ...

  4. Ionic app升级插件开发

    终于走到了写插件的这个地方了,插件的过程: 1.安装plugman插件,管理我们的程序 npm install -g plugman 2.创建插件项目appUpgrade,cd 到你的目标目录下,执行 ...

  5. android升级adt和sdk之后无法识别SDK Location的一个解决方式

    我把android的adt和sdk从4.0升级到4.2,发现eclipse的android设置里面原来列出的各种api level的platform消失了,而且无法新建android工程.而且检查过了 ...

  6. [Android] 升级了新的android studio之后 发生如下的报错,The following classes could not be instantiated:

    The following classes could not be instantiated:- android.support.v4.widget.DrawerLayout (Open Class ...

  7. Android 代码检查工具SonarQube

    http://blog.csdn.net/rain_butterfly/article/details/42170601 代码检查工具能帮我们检查一些隐藏的bug,代码检查工具中sonar是比较好的一 ...

  8. Ionic Android开发环境搭建 上

    首先,需要下载并安装Node.js. 什么是Node.js?百科上说:Node.js是一个基于Chrome JavaScript运行时建立的平台, 用于方便地搭建响应速度快.易于扩展的网络应用.Nod ...

  9. Android Api 检查參数状态Api

    转载请注明出处:http://blog.csdn.net/droyon/article/details/39938677 在进行Android应用程序开发中,android提供了一个非常好的工具类,来 ...

随机推荐

  1. JavaSE| 面向对象-类的五大成员

    面向对象 面向对象只是其中一种编程思想,还有很多其他的编程思想:面向过程.面向切面.面向服务编程... 面向过程的思维方式:注重步骤.过程,面向过程强调的是功能行为: 面向对象的思维方式:关注的是“对 ...

  2. mini dc与简易计算器 20165235

    mini dc 任务内容 本次mini dc任务就是通过补充代码来实现整型数据的后缀表达式计算 相关知识 通过利用堆栈这一先进后出的数据结构来实现后缀表达式的计算.通过Stack<Integer ...

  3. 最短路(bellman)-hdu2066

    题目链接:https://vjudge.net/problem/HDU-2066 题目描述: 代码实现: #include <cstdio> #include <cstring> ...

  4. 第一次使用MarkDown写博客,复习指针

    第一次使用MarkDown记录博客,复习指针 创建数组 指针的指针 二级指针的使用 1. 创建数组 - 数组和指针都支持加法和索引 2. 指针的指针 - 使用另一个指针指向数组(用法一致[索引.加法] ...

  5. 002.LVS管理工具的安装与使用

    一 安装IPVS 可通过源码安装或yum安装,源码包如下: http://www.linuxvirtualserver.org/software/ipvs.html [root@lvsmaster ~ ...

  6. 利用Fiddler拦截接口请求并篡改数据

    近期在测试一个下单的项目,出于安全角度考虑,测试了一个场景,那就是利用工具对接口进行拦截并篡改数据.将接口一拦截并篡改数据后,发现收货满满.开发默默接受了我的建议,并对代码进行了修改. 对于fiddl ...

  7. BeagleBone Black 从零到一 (2 MLO、U-Boot) 转

    文章原址:jexbat.com/categories/BeagleBone/ 什么是 U-Boot 熟悉嵌入式开发的应该都听过它,U-boot 就是启动系统前的一段引导程序,虽然是引导程序,但是功能非 ...

  8. shiro学习总结(一)----初识shiro

    本系列内容大多总结自官网和张开涛的<跟我学Shiro> 一.shiro简介 1.1.shiro有什么用? shiro是一个功能强大使用简单的java安全框架,主要提供了五大功能: 1.认证 ...

  9. SpringMVC(十三) RequestMapping 使用servlet原生API作为参数

    SpringMVC支持以下Servlet方法: HttpServletRequest HttpServletResponse HttpSession Writer Reader Locale Inpu ...

  10. 如何在github上搭建网站?

    3年前就想写这篇文章了,一直没写,拖到现在,迟到总比不到好,哈哈.github pages只支持静态博客(html,css,js),不支持服务端(php,physon). 一.尝试一下 1.在电脑上安 ...