5+应用可使用以下方式进行升级

- 整包升级:适用于大版本更新,runtime发生变化时(模块、配置、版本等变化)必须使用此更新方法

- 应用资源升级:适用于小版本更新 。runtime不变,前端页面整体压缩包更新

- 应用资源差量升级:适用于小版本更新 。runtime不变,前端页面仅需要更新的部分更新。

本文重点描述5+应用整包升级,逻辑其实是非常简单,主要有三个步骤:

1. 查询是否有新版本更新

2. 下载新版本

3. 安装新版本

而在实际应用的升级过程中则需要处理很多细节问题,下面就按照这个流程来简单说明在5+App中实现应用升级的逻辑。

查询是否有新版本更新

这个操作其实非常简单,就是客户端与升级服务器的一次交互操作,比较升级服务器上发布的最新客户端版本是否高于当前客户端版本号(5+ API中可以通过plus.runtime.version获取当前apk/ipa的版本号,注意打包方生效)?是的话则需要升级,否则无需升级。

从逻辑上来考虑有两种判断模式:

1. 客户端判断是否有升级

客户端从服务器获取最新的版本号,本地js判断是否需要升级。

2. 服务器判断是否有升级

客户端提交版本到服务器,有服务器判断返回是否需要升级。

前者的优点是否服务器压力小,静态返回最新客户端版本即可,后者的优点则升级控制会更灵活,可以根据其它条件动态控制部分用户先升级(灰度发布)等。有条件的情况推荐采用第二种方式进行判断。

可以使用Javascript中的标准XHR请求,如果存在跨域问题则使用5+ API的XMLHttpRequest。

下载新版本

如果判断到需要更新版本,则需要从服务器下载新版本,通常升级服务器应该返回下载新版本的地址(或者从固定的地址获取)。

有两种下载方法,一种调用Downloader API下载,示例如下:var url=""; // 下载文件地址

var dtask = plus.downloader.createDownload( url, {}, function ( d, status ) {

if ( status == 200 ) { // 下载成功

var path = d.filename;

console.log(d.filename);

} else {//下载失败

alert( "Download failed: " + status );

}

});

dtask.start();

安装新版本

下载原生安装包apk后,可调用plus.runtime.install方法安装,示例如下:plus.runtime.install(path); // 安装下载的apk文件

注意

iOS平台的ipa无法安装,此时需要跳转到appstore,提示用户自动点击升级更新,跳转到appstore的方法为打开应用的appstore地址,示例如下:var url='itms-apps://itunes.apple.com/cn/app/hello-h5+/id682211190?l=zh&mt=8';// HelloH5应用在appstore的地址

plus.runtime.openURL(url);

此处url是以"itms-apps://"开头,后面跟appstore上应用地址。

示例

在Hello H5+和Hello mui示例里,有2种不同的检查更新处理方式。

Hello H5+里的update.js比较复杂,在js里执行下载apk并安装的逻辑。

Hello mui里的update.js比较简单,弹出新包下载地址到浏览器,由浏览器执行下载逻辑。

如何选择看自己的要求。

apk升级文件服务器,整包(apk/ipa)升级相关推荐

  1. android ota升级涉及的分区,Android OTA升级原理 - 实现流程(整理一)

    Android OTA实现流程分析 OTA升级概述 制作升级包 自动生成update.zip升级包 手动生成update升级包 增量包目录结构 升级包写入设备分区 Android的三种工作模式 Rec ...

  2. uni-app升级APP,包含apk整包升级和wgt应用资源升级

    这里只说安卓的应用,软件包放在自己的服务器中. 三种方式 apk包整包更新,要下载所有的文件包含权限模块依赖等,大小在20M+ wgt包应用资源更新,只更新自己写的代码,根据你代码的多少大小在600k ...

  3. uni-app 整包升级/更新方案

    注意:plus.runtime.appid,plus.runtime.version, plus.runtime.openURL() 在真机环境下才有效 使用 uni-app 开发,可将代码编译到iO ...

  4. Android 系统(144)---整包升级与差分升级的区别

    整包升级与差分升级的区别 原文地址:FULL VS INCREMENTAL OTA 一.简介: OTA升级有两种类型,每一种类型都有对应的用途和优势.但是,只有一种类型是用户常常能够接触到的.现在我们 ...

  5. 制作OTA升级整包增量包

    制作OTA升级包 OTA包有整包和差分包之分.顾名思义,所谓整包就是包含整个system分区的数据文件;而差分包则仅仅包含两个版本之间改动的部分.使用整包升级就好比对电脑进行重装系统,格式化系统分区, ...

  6. android差分包和整包的区别,整包升级与差分升级的区别

    一.简介: OTA升级有两种类型,每一种类型都有对应的用途和优势.但是,只有一种类型是用户常常能够接触到的.现在我们来一起熟悉他们.如下图: 从上面的曲线图中我们知道,这两种类型分别是:Increme ...

  7. apk安装,解析包时出错

    apk安装,解析包时出错是当时手机版本过低,需升级手机版本,或者下载apk的历史版本.豌豆荚里可以安装APP的历史版本,APP和手机系统的版本低利于数据抓取.

  8. 【Android 逆向】逆向修改游戏应用 ( APK 解析工具 | 解包 -> 分析 -> 重打包 -> 签名 流程 )

    文章目录 一.APK 解析工具 二.解包 -> 分析 -> 重打包 -> 签名 流程 一.APK 解析工具 使用 [Android 逆向]使用 Python 编写 APK 批处理分析 ...

  9. APK文件的解包打包和修改

    相信每位玩机的人对APK文件都不陌生.你可能每天都与APK文件打交道,无论是安装和卸载有用的应用工具.插件.好玩的游戏等等...你可曾知道这些每天都伴随着你的APK文件是什么吗?怎样对它们作些修改呢? ...

最新文章

  1. 滴滴进入寒冬期,将裁员2000人
  2. 二十三种设计模式-六大原则
  3. 第三章 PX4-Pixhawk-SPI底层驱动解析
  4. The Use Case Definition in UML
  5. 基于Python-Flask实现的网站例子
  6. 部分高级正则特性 使用
  7. paip. java resin 远程 调试 java resin remote debug
  8. 在计算机中 总线简称,微机中的总线一般分为几等
  9. 影视剪辑,视频剪辑素材音效哪里找?超实用剪辑入门必备素材
  10. 在ESC云服务器中部署KodCloud云盘系统(四)
  11. python输出列表的子列表_python切片(获取一个子列表(数组))详解
  12. Linux 块设备层中的Multi-queue分析
  13. python实用的语法和函数
  14. MII、 RMII、 GMII、 RGMII 接口介绍
  15. 文档格式转换工具对比
  16. 安卓恢复大师怎样恢复手机删除的照片
  17. FREERTOS出现断言情况以及解决方法:Error:..\FreeRTOS\portable\RVDS\ARM_CM3\port.c,378
  18. MySql查询本周或下周过生日的人
  19. 别再用中国人的方法背英语单词了,英国人是这样背的!
  20. SOP流程怎么制定?一招教你:轻松制作标准化作业流程SOP

热门文章

  1. 配置 NEC SV8100 电话交换机屏蔽声讯台以及其他设置
  2. UWB 超带宽寻迹定位模块——STM32设计部分
  3. mybatis java类注解式_mybatis注解详解
  4. DevOps三法印深入:高德拉特六问、清晰思考与变革
  5. matlab模拟流动传热,基于MATLAB的快速式汽-水换热器传热与流动特性研究
  6. Javascript 笔记基础(一)
  7. outlook服务器信息查看器,允许最终用户在 Outlook Web App 中查看 POP3、IMAP4 和 SMTP 服务器设置...
  8. 基于51单片机的智能检测雨滴报警器
  9. MySQL修改表名和字段名大小写
  10. python爬虫系列--小练爬取花田首页源码