ionic安卓

爱被打了一巴掌 2022-06-03 05:52 415阅读 0赞

Ionic 框架介绍

  Ionic是一个基于Angularjs、可以使用HTML5构建混合移动应用的用户界面框架,它自称为是“本地与HTML5的结合”。该框架提供了很多基本的移动用户界面范例,例如像列表(lists)、标签页栏(tab bars)和触发开关(toggle switches)这样的简单条目。它还提供了更加复杂的可视化布局示例,例如在下面显示内容的滑出式菜单。
Ionic 自动升级APP

一、准备工作

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

  1. //检测更新
  2. checkUpdate();
  3. document.addEventListener("menubutton", onHardwareMenuKeyDown, false);
  4. \});
  5. // 菜单键
  6. function onHardwareMenuKeyDown() \{
  7. $ionicActionSheet.show(\{
  8. titleText: '检查更新',
  9. buttons: \[
  10. \{ text: '关于' \}
  11. \],
  12. destructiveText: '检查更新',
  13. cancelText: '取消',
  14. cancel: function () \{
  15. // add cancel code..
  16. \},
  17. destructiveButtonClicked: function () \{
  18. //检查更新
  19. checkUpdate();
  20. \},
  21. buttonClicked: function (index) \{
  22. \}
  23. \});
  24. $timeout(function () \{
  25. hideSheet();
  26. \}, 2000);
  27. \};
  28. // 检查更新
  29. function checkUpdate() \{
  30. var serverAppVersion = "1.0.0"; //从服务端获取最新版本
  31. //获取版本
  32. $cordovaAppVersion.getAppVersion().then(function (version) \{
  33. //如果本地与服务端的APP版本不符合
  34. if (version != serverAppVersion) \{
  35. showUpdateConfirm();
  36. \}
  37. \});
  38. \}
  39. // 显示是否更新对话框
  40. function showUpdateConfirm() \{
  41. var confirmPopup = $ionicPopup.confirm(\{
  42. title: '版本升级',
  43. template: '1.xxxx;</br>2.xxxxxx;</br>3.xxxxxx;</br>4.xxxxxx', //从服务端获取更新的内容
  44. cancelText: '取消',
  45. okText: '升级'
  46. \});
  47. confirmPopup.then(function (res) \{
  48. if (res) \{
  49. $ionicLoading.show(\{
  50. template: "已经下载:0%"
  51. \});
  52. var url = "http://192.168.1.50/1.apk"; //可以从服务端获取更新APP的路径
  53. var targetPath = "file:///storage/sdcard0/Download/1.apk"; //APP下载存放的路径,可以使用cordova file插件进行相关配置
  54. var trustHosts = true
  55. var options = \{\};
  56. $cordovaFileTransfer.download(url, targetPath, options, trustHosts).then(function (result) \{
  57. // 打开下载下来的APP
  58. $cordovaFileOpener2.open(targetPath, 'application/vnd.android.package-archive'
  59. ).then(function () \{
  60. // 成功
  61. \}, function (err) \{
  62. // 错误
  63. \});
  64. $ionicLoading.hide();
  65. \}, function (err) \{
  66. alert('下载失败');
  67. \}, function (progress) \{
  68. //进度,这里使用文字显示下载百分比
  69. $timeout(function () \{
  70. var downloadProgress = (progress.loaded / progress.total) \* 100;
  71. $ionicLoading.show(\{
  72. template: "已经下载:" + Math.floor(downloadProgress) + "%"
  73. \});
  74. if (downloadProgress > 99) \{
  75. $ionicLoading.hide();
  76. \}
  77. \})
  78. \});
  79. \} else \{
  80. // 取消更新
  81. \}
  82. \});
  83. \}
  84. \}\])

  上面是一个简单实现方式,一些数据都在这里写死了,你可以将一些数据从服务端获取,比如最新版本号,最新版的下载路径,这里提供一个思路。

  项目地址:https://github.com/zxj963577494/ionic-AutoUpdateApp

   只需执行ionic build android即可

-此文章转载-转载自:http://www.cnblogs.com/zxj159/p/4421578.html

发表评论

表情:
评论列表 (有 0 条评论,415人围观)

还没有评论,来说两句吧...

相关阅读

    相关 ionic

    Ionic 框架介绍   Ionic是一个基于Angularjs、可以使用HTML5构建混合移动应用的用户界面框架,它自称为是“本地与HTML5的结合”。该框架

    相关 结构图

    安卓项目结构图和安卓体系架构和MVC视图,让你更加清楚的了解android的结构 ![这里写图片描述][70] ![这里写图片描述][70 1] ------------

    相关 基础

    [安卓基础安卓基础安卓基础安卓基础安卓基础安卓基础安卓基础安卓基础安卓基础安卓基础安卓基础安卓基础安卓基础安卓基础安卓基础安卓基础安卓基础安卓基础安卓基础安卓基础安卓基础安卓基