【转发】 ionic更新app
来源:互联网 发布:淘宝代理怎么做 编辑:程序博客网 时间:2024/06/02 12:13
一、准备工作
1.Cordova插件:
cordova plugin add https://github.com/whiteoctober/cordova-plugin-app-version.git // 获取APP版本
cordova plugin add org.apache.cordova.file // 文件系统
cordova plugin add org.apache.cordova.file-transfer //文件传输系统
cordova plugin add https://github.com/pwlin/cordova-plugin-file-opener2 //文件打开系统
2.AngularJS Cordova插件
ngCordova
二、相关代码,app.js
.run(['$ionicPlatform', '$rootScope','$ionicActionSheet', '$timeout','$cordovaAppVersion', '$ionicPopup', '$ionicLoading','$cordovaFileTransfer', '$cordovaFile', '$cordovaFileOpener2', function ($ionicPlatform, $rootScope,$ionicActionSheet, $timeout, $cordovaAppVersion, $ionicPopup, $ionicLoading, $cordovaFileTransfer, $cordovaFile, $cordovaFileOpener2) { $ionicPlatform.ready(function ($rootScope) { // Hide the accessory bar by default (remove this to show the accessory bar above the keyboard // for form inputs) if (window.cordova && window.cordova.plugins.Keyboard) { cordova.plugins.Keyboard.hideKeyboardAccessoryBar(true); } if (window.StatusBar) { // org.apache.cordova.statusbar required StatusBar.styleDefault(); } //检测更新 checkUpdate(); document.addEventListener("menubutton", onHardwareMenuKeyDown, false); }); // 菜单键 function onHardwareMenuKeyDown() { $ionicActionSheet.show({ titleText: '检查更新', buttons: [ { text: '关于' } ], destructiveText: '检查更新', cancelText: '取消', cancel: function () { // add cancel code.. }, destructiveButtonClicked: function () { //检查更新 checkUpdate(); }, buttonClicked: function (index) { } }); $timeout(function () { hideSheet(); }, 2000); }; // 检查更新 function checkUpdate() { var serverAppVersion = "1.0.0"; //从服务端获取最新版本 //获取版本 $cordovaAppVersion.getAppVersion().then(function (version) { //如果本地于服务端的APP版本不符合 if (version != serverAppVersion) { showUpdateConfirm(); } }); } // 显示是否更新对话框 function showUpdateConfirm() { var confirmPopup = $ionicPopup.confirm({ title: '版本升级', template: '1.xxxx;</br>2.xxxxxx;</br>3.xxxxxx;</br>4.xxxxxx', //从服务端获取更新的内容 cancelText: '取消', okText: '升级' }); confirmPopup.then(function (res) { if (res) { $ionicLoading.show({ template: "已经下载:0%" }); var url = "http://192.168.1.50/1.apk"; //可以从服务端获取更新APP的路径 var targetPath = "file:///storage/sdcard0/Download/1.apk"; //APP下载存放的路径,可以使用cordova file插件进行相关配置 var trustHosts = true var options = {}; $cordovaFileTransfer.download(url, targetPath, options, trustHosts).then(function (result) { // 打开下载下来的APP $cordovaFileOpener2.open(targetPath, 'application/vnd.android.package-archive' ).then(function () { // 成功 }, function (err) { // 错误 }); $ionicLoading.hide(); }, function (err) { alert('下载失败'); }, function (progress) { //进度,这里使用文字显示下载百分比 $timeout(function () { var downloadProgress = (progress.loaded / progress.total) * 100; $ionicLoading.show({ template: "已经下载:" + Math.floor(downloadProgress) + "%" }); if (downloadProgress > 99) { $ionicLoading.hide(); } }) }); } else { // 取消更新 } }); } }])
上面是一个简单实现方式,一些数据都在这里写死了,你可以将一些数据从服务端获取,比如最新版本号,最新版的下载路径,这里提供一个思路。
项目地址:https://github.com/zxj963577494/ionic-AutoUpdateApp
只需执行ionic build android即可
原文转发自http://ionichina.com/topic/552b511e154e532908b07800,用以资料留存
0 0
- 【转发】 ionic更新app
- ionic实现App动态更新,热更新
- 【ionic App问题总结系列】ionic 如何更新app版本
- ionic 热更新-不发布应用市场动态更新APP源码
- angular+ionic 的app上拉加载更新数据实现
- ionic开发APP更新方法以及打包(Android && IOS)
- ionic 更新
- ionic 热更新插件-不发布应用市场动态更新APP 源码
- ionic 自动更新APP
- IONIC 自动更新APP版本
- ionic创建App
- ionic app 安卓版自动更新
- 创建Ionic App
- ionic-app.js分析
- IONIC 自动更新APP版本
- ionic打包app
- ionic创建app
- IONIC 自动更新APP版本
- Unity3D游戏中隐藏鼠标光标
- Oracle 12cR1新特性导致的性能问题---MMON进程消耗了很高的CPU使用率.
- 面试题学习笔记--java基础篇
- java移位运算符:<<(左移)、>>(带符号右移)和>>>(无符号右移)
- 51nod1668非010串+矩阵快速幂
- 【转发】 ionic更新app
- MT7628实现Amazon alexa语音控制
- 自定义Adapter的接口,方便回调。Adapter与Activity之间的回调
- 解决linux重启apache遇到:Could not reliably determine the server's ...的错误
- 2016/9/28leetcode笔记,
- Intellij idea 与 MyEclipse
- 友盟多渠道打包总结
- C#模拟鼠标操作
- 网页端启动APP