App版本检测及自动升级功能的代码开发

PS1:本教程主要针对使用APICloud技术进行App应用开发的技术人员

PS2:考虑到代码的兼容性,本教程代码使用ES5方式编写,最新的大部分手机的浏览器内核已支持ES6代码,不考虑兼容性的话,也可以尝试使用ES6+的代码风格去编写

1 使用场景

App的版本代码管理由2种方式,一种为自动、一种为手动

  • 自动方式:将版本管理交由APICloud引擎进行自动处理,自动实现App的自动版本检测、提示及自动更新等功能
    • 优点:简单、快捷,无需开发人员编写任何代码;
    • 缺点:代码业务逻辑已固定,不支持扩展,无法修改相关样式及执行逻辑;
  • 手动方式:由开发人员自定编写代码,去实现App版本的检查、提示、更新等逻辑
    • 优点:支持自定义开发,逻辑灵活,开发人员可定制弹窗样式和交互逻辑;
    • 缺点:所有逻辑的代码均需要开发人员自定编写完成,有一定的工作量;

本教程主要介绍开发者如何在手动方式下,完成App版本管理的相关功能开发

2 开发流程

2.1 配置激活版本管理的自动方式

修改根目录下的config.xml文件,将其中的中的vallue参数值由false修改为true,即

在这里插入图片描述

2.2 相关代码

/*** 检查版本升级*/
function checkUpdate() {var mam = api.require('mam');// 最新版本检测mam.checkUpdate(function (ret, err) {var result = ret.result;if (result && result.update) {// 拼接弹窗的提示信息var titleMsg = '发现新版本[' + result.version + ']';var content = result.updateTip;var cancelBtn = '暂不升级';if (result.closed) {cancelBtn = '放弃退出';}if (ret.versionDes) {content += '\n' + ret.versionDes;}// 弹出弹窗对话框api.confirm({title: titleMsg,msg: content,buttons: ['立即升级', cancelBtn]},function (ret, err) {if (ret.buttonIndex == 1) {updateApp(result.source);} else if (result.closed) {// 强制关闭的应用,取消直接退出api.closeWidget({ silent: true });}});return;}// 强制关闭版本的弹窗提示if (result && result.closed) {// 无更新,版本强制关闭api.alert({title: '版本关闭提示',msg: '很抱歉,当前版本已关闭,程序将自动退出'},function (ret, err) {api.closeWidget({ silent: true });});}});
}

代码说明:本代码仅做示范示例,开发者可根据自己的业务逻辑需求,自定进行相关代码的修改优化(例如自定义一个更漂亮的提示弹窗)

代码内涉及的API命令的前置介绍:

  • api.require: APICloud引擎内置api,用于加载原生的APICloud模块

  • api.confirm:APICloud引擎内置api,弹出具有2个交互按钮的模态对话框

    在这里插入图片描述

  • api.alert: APICloud引擎内置api,弹出具有1个按钮的模态对话框,功能类似原生web下的window.alert

在这里插入图片描述

    • api.closeWidget: APICloud引擎内置api,关闭app

      在这里插入图片描述

3 云端发布版本的操作说明:

3.1 登录APICloud云端控制台,编制新版本

在这里插入图片描述

2. 获取新版本的下载地址

  • iOS版本的下载地址获取教程(点击跳转)

  • Android版本的下载地址获取

在这里插入图片描述

3. 填写配置预发布更新版本的更新信息

在这里插入图片描述

4. 推送强制版本更新的操作说明

在发布新版本的同时,将之前的历史版本关闭,即可强制使用该历史版本的用户更急到最新版本,否则app将无法继续使用

在这里插入图片描述

4 App更新页面样式展示

4.1 有更新(不强制升级)

在这里插入图片描述

4.2 有更新(强制升级)

在这里插入图片描述

4.3 无更新(关闭版本)

在这里插入图片描述


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部