日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > Android >内容正文

Android

Ionic实战 自动升级APP(Android版)

發(fā)布時(shí)間:2025/7/14 Android 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Ionic实战 自动升级APP(Android版) 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.


Ionic 框架介紹

  Ionic是一個(gè)基于Angularjs、可以使用HTML5構(gòu)建混合移動(dòng)應(yīng)用的用戶界面框架,它自稱為是“本地與HTML5的結(jié)合”。該框架提供了很多基本的移動(dòng)用戶界面范例,例如像列表(lists)、標(biāo)簽頁(yè)欄(tab bars)和觸發(fā)開(kāi)關(guān)(toggle switches)這樣的簡(jiǎn)單條目。它還提供了更加復(fù)雜的可視化布局示例,例如在下面顯示內(nèi)容的滑出式菜單。
Ionic 自動(dòng)升級(jí)APP

一、準(zhǔn)備工作

  1.Cordova插件:

    cordova plugin add https://github.com/whiteoctober/cordova-plugin-app-version.git? // 獲取APP版本
    cordova plugin add org.apache.cordova.file // 文件系統(tǒng)
    cordova plugin add org.apache.cordova.file-transfer //文件傳輸系統(tǒng)
    cordova plugin add https://github.com/pwlin/cordova-plugin-file-opener2 //文件打開(kāi)系統(tǒng)

  2.AngularJS Cordova插件

    ngCordova

二、相關(guān)代碼,app.js
復(fù)制代碼

.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();
??????????? }

??????????? //檢測(cè)更新
??????????? checkUpdate();

??????????? document.addEventListener("menubutton", onHardwareMenuKeyDown, false);
??????? });


??????? // 菜單鍵
??????? function onHardwareMenuKeyDown() {
??????????? $ionicActionSheet.show({
??????????????? titleText: '檢查更新',
??????????????? buttons: [
??????????????????? { text: '關(guān)于' }
??????????????? ],
??????????????? destructiveText: '檢查更新',
??????????????? cancelText: '取消',
??????????????? cancel: function () {
??????????????????? // add cancel code..
??????????????? },
??????????????? destructiveButtonClicked: function () {
??????????????????? //檢查更新
??????????????????? checkUpdate();
??????????????? },
??????????????? buttonClicked: function (index) {

??????????????? }
??????????? });
??????????? $timeout(function () {
??????????????? hideSheet();
??????????? }, 2000);
??????? };

??????? // 檢查更新
??????? function checkUpdate() {
??????????? var serverAppVersion = "1.0.0"; //從服務(wù)端獲取最新版本
??????????? //獲取版本
??????????? $cordovaAppVersion.getAppVersion().then(function (version) {
??????????????? //如果本地與服務(wù)端的APP版本不符合
??????????????? if (version != serverAppVersion) {
??????????????????? showUpdateConfirm();
??????????????? }
??????????? });
??????? }

??????? // 顯示是否更新對(duì)話框
??????? function showUpdateConfirm() {
??????????? var confirmPopup = $ionicPopup.confirm({
??????????????? title: '版本升級(jí)',
??????????????? template: '1.xxxx;</br>2.xxxxxx;</br>3.xxxxxx;</br>4.xxxxxx', //從服務(wù)端獲取更新的內(nèi)容
??????????????? cancelText: '取消',
??????????????? okText: '升級(jí)'
??????????? });
??????????? confirmPopup.then(function (res) {
??????????????? if (res) {
??????????????????? $ionicLoading.show({
??????????????????????? template: "已經(jīng)下載:0%"
??????????????????? });
??????????????????? var url = "http://192.168.1.50/1.apk"; //可以從服務(wù)端獲取更新APP的路徑
??????????????????? var targetPath = "file:///storage/sdcard0/Download/1.apk"; //APP下載存放的路徑,可以使用cordova file插件進(jìn)行相關(guān)配置
??????????????????? var trustHosts = true
??????????????????? var options = {};
??????????????????? $cordovaFileTransfer.download(url, targetPath, options, trustHosts).then(function (result) {
??????????????????????? // 打開(kāi)下載下來(lái)的APP
??????????????????????? $cordovaFileOpener2.open(targetPath, 'application/vnd.android.package-archive'
??????????????????????? ).then(function () {
??????????????????????????????? // 成功
??????????????????????????? }, function (err) {
??????????????????????????????? // 錯(cuò)誤
??????????????????????????? });
??????????????????????? $ionicLoading.hide();
??????????????????? }, function (err) {
??????????????????????? alert('下載失敗');
??????????????????? }, function (progress) {
??????????????????????? //進(jìn)度,這里使用文字顯示下載百分比
??????????????????????? $timeout(function () {
??????????????????????????? var downloadProgress = (progress.loaded / progress.total) * 100;
??????????????????????????? $ionicLoading.show({
??????????????????????????????? template: "已經(jīng)下載:" + Math.floor(downloadProgress) + "%"
??????????????????????????? });
??????????????????????????? if (downloadProgress > 99) {
??????????????????????????????? $ionicLoading.hide();
??????????????????????????? }
??????????????????????? })
??????????????????? });
??????????????? } else {
??????????????????? // 取消更新
??????????????? }
??????????? });
??????? }
??? }])

  上面是一個(gè)簡(jiǎn)單實(shí)現(xiàn)方式,一些數(shù)據(jù)都在這里寫死了,你可以將一些數(shù)據(jù)從服務(wù)端獲取,比如最新版本號(hào),最新版的下載路徑,這里提供一個(gè)思路。

?  項(xiàng)目地址:https://github.com/zxj963577494/ionic-AutoUpdateApp

   只需執(zhí)行ionic build android即可



來(lái)自:http://www.cnblogs.com/zxj159/p/4421578.html

?

轉(zhuǎn)載于:https://www.cnblogs.com/zhoupengyi/p/6200892.html

總結(jié)

以上是生活随笔為你收集整理的Ionic实战 自动升级APP(Android版)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。