版本更新

概述

您可以使用APICloud 的版本更新服务,来向用户推送您App的新版本。版本更新服务只针对正式版APP,测试版无效。只能由低版本更新到高版本。

注意:使用版本更新功能需要添加mam模块。

参考视频

入门概念篇第六节(如何使用APICloud云端应用服务)

一、使用自动更新

1, config.xml 中配置

  1. <preference name="autoUpdate" value="true" />

2,登录APICloud官网,进入控制台,找到应用服务下的“版本”(图一),点击进入版本管理界面(图二),如图:

图一: 版本

图二: 版本

3,点击“更新APP版本”,选择版本并填写更新地址,更新备注,最后点击“更新”按钮。

版本

更新地址在云编译页面,点开编译记录,点击查看地址图标获取,如下图:

版本

4,打开手机上的APP,即可接收到新版本的推送。

二、使用API更新

也可使用mam模块更新,参考文档: //docs.apicloud.com/%E7%AB%AFAPI/%E4%BA%91%E6%9C%8D%E5%8A%A1%E5%AF%B9%E6%8E%A5/mam

首先在项目代码config.xml中配置:

  1. <preference name="autoUpdate" value="false" />

示例代码:

  1. function checkUpdate() {
  2. var mam = api.require('mam');
  3. mam.checkUpdate(function(ret, err) {
  4. if (ret) {
  5. var result = ret.result;
  6. if (result.update == true && result.closed == false) {
  7. var str = '新版本型号:' + result.version + ';更新提示语:' + result.updateTip + ';下载地址:' + result.source + ';发布时间:' + result.time;
  8. api.confirm({
  9. title : '有新的版本,是否下载并安装 ',
  10. msg : str,
  11. buttons : ['确定', '取消']
  12. }, function(ret, err) {
  13. if (ret.buttonIndex == 1) {
  14. if (api.systemType == "android") {
  15. api.download({
  16. url : result.source,
  17. report : true
  18. }, function(ret, err) {
  19. if (ret && 0 == ret.state) {/* 下载进度 */
  20. api.toast({
  21. msg : "正在下载应用" + ret.percent + "%",
  22. duration : 2000
  23. });
  24. }
  25. if (ret && 1 == ret.state) {/* 下载完成 */
  26. var savePath = ret.savePath;
  27. api.installApp({
  28. appUri : savePath
  29. });
  30. }
  31. });
  32. }
  33. if (api.systemType == "ios") {
  34. api.installApp({
  35. appUri : result.source
  36. });
  37. }
  38. }
  39. });
  40. } else {
  41. api.alert({
  42. msg : "暂无更新"
  43. });
  44. }
  45. } else {
  46. api.alert({
  47. msg : err.msg
  48. });
  49. }
  50. });
  51. }

三、强制更新:

  1. 进入控制台的“版本”管理界面
  2. 点击右上角的“更新APP版本”,发布新的app版本:选择要发布的版本,以1.0.0为例,输入一些版本描述,或者留空;app下载链接可以从“编译记录中复制”,也可以是存在自己服务器上的安装包地址
  3. 发布成功后,并且做推广一段时间后,你的用户手机上都装了1.0.0版本了
  4. 重复1、2操作,发布一个新的版本,比如2.0.0
  5. 此时,安装了1.0.0的用户,在启动app时,就会收到2.0.0版本的提示更新,ta可以选择不更新
  6. 关闭版本:在版本记录界面中,在1.0.0版本记录的最右侧,选择“关闭”,即将1.0.0版本关闭
  7. 此时,安装了1.0.0的用户,在启动app时,就会收到2.0.0版本的强制更新,必须更新才能继续使用
  8. 其他版本的强制更新以此类推。

四、强制关闭:

同强制更新逻辑一致,唯一不同的点:当你将版本管理中的所有版本均关闭后,用户在启动app时,就会收到强制关闭的提示了,即该app不再使用

强制更新和强制关闭的主要逻辑:当用户手机上当前安装的版本被关闭时,如果此时服务器上有比该版本更新的版本,则强制用户更新到最新版本;如果用户手机上当前安装的版本没有被关闭时,则提示更新,用户可以选择不更新;当服务器上所有版本都被关闭时,该应用被强制关闭,用户无法再使用。注:前置条件是手机联网了。