ipa apk.cn dbl.html,# 整包(apk/ipa)升级

整包(apk/ipa)升级

分类:HTML5+

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

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

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

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

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

查询是否有新版本更新

下载新版本

安装新版本

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

查询是否有新版本更新

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

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

客户端判断是否有升级

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

服务器判断是否有升级

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

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

可以使用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比较简单,弹出新包下载地址到浏览器,由浏览器执行下载逻辑。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值