零)内容从网络获取试验后整理而成,基本上能符合大部分需求了php
修复部分错误,补所有份内容,好比升级说明均来自服务器端配置,以及下载进度条的正确显示html
增长服务器端代码及说明android
增长app升级步骤。chrome
一)先安装必要的插件:json
ionic plugin add cordova-plugin-app-version
后端
ionic plugin add cordova-plugin-file跨域
ionic plugin add cordova-plugin-file-transfer浏览器
ionic plugin add cordova-plugin-file-opener2服务器
二)app.js的run方法里添加代码网络
$ionicPlatform .ready(function () { //其余代码 //自动下载升级安装 if (ionic.Platform.isAndroid()) { $http.jsonp('http://www.yourdomain.com/ver.php?callback=JSON_CALLBACK') .then(function (data) { var serverAppVersion = data.data.ver;//服务器 版本 $cordovaAppVersion.getVersionNumber() .then(function (version) { if (version != serverAppVersion) { var confirmPopup = $ionicPopup.confirm({ title: '有新的版本:' + serverAppVersion, template: data.data.desc, //从服务端获取更新的内容 cancelText: '取消', okText: '升级' }); confirmPopup.then(function (res) { if (res) { if (version != serverAppVersion) { $ionicLoading.show({ template: "开始下载,请等待..." }); var url = "http://www.yourdomain.com/app.apk"; var targetPath = "file:///mnt/sdcard/Download/app.apk"; var trustHosts = true; var options = {}; $cordovaFileTransfer.download(url, targetPath, options, trustHosts) .then(function (result) { $cordovaFileOpener2.open(targetPath, 'application/vnd.android.package-archive' ).then(function () { }, function (err) { }); $ionicLoading.hide(); }, function (err) { alert('下载失败'); }, function (progress) { //进度,这里使用文字显示下载百分比 var downloadProgress ; downloadProgress = (progress.loaded / progress.total) * 100; $ionicLoading.show({ template: '已经下载:' + Math.floor(downloadProgress) + '%' }); if (downloadProgress > 99) { $ionicLoading.hide(); } }); } } }); } }); }); }//if (ionic.Platform.isAndroid()) { });
*特别要注意,增长依赖关系,由于在浏览器里没法调试这部分代码,只能经过chrome://inspection来调试
三)后端的ver.php代码
<?php header("Content-type:text/html;charset=utf-8"); $callback = $_GET['callback']; $response = array('ver'=>"0.0.3", 'desc'=>'1.xxx<br>2.yyyy<br>3.zzz'); $json = json_encode($response); echo "$callback($json)";
说明:callback是为了支持jsonp调用,这样使得能ver.php等被跨域调用
四)app升级步骤:
1.修改程序,编译apk,编译前记得修改/config.xml 里的version,提升一个版本号
2.上传apk到服务器指定的路径
3.修改服务器端ver.php代码:$response = array('ver'=>"0.0.3", 'desc'=>'1.xxx<br>2.yyyy<br>3.zzz');
建议注释原有语句,增长新语句,这样至关于就保留了完整的升级历史,在新语句里修改ver和config.xml里的version一致,同时修改desc里的升级内容。
<<END>>