零)內容從網絡獲取試驗後整理而成,基本上能符合大部分需求了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>>