APICloud(十一):版本更新

APICloud官网对于版本更新这个模块说的很清楚,很全面,也很好理解,链接如下:

http://docs.apicloud.com/Dev-Guide/version_update

我这里主要是记录一下我在用的过程中碰到的一些问题以及处理情况。

一、使用自动更新

1、config.xml 中配置: <preference name="autoUpdate" value="true" />

2、登录APICloud官网,进入控制台,找到应用服务下的“版本”节点,点击进入版本管理界面。

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

版本:用来提醒更新用的,若APP的版本比当前填写的版本高那就会说已经安装了更高版本的,若是低才会提醒更新。

地址:更新地址在云编译页面,点开编译记录,点击查看地址图标获取。设置地址就是方便在更新版本时,从指定的地址下载最新版。

备注:主要用来填写当前版本做了哪些修改,在提示更新的弹出框中会显示出来。

(注:填写的版本信息,有删除和关闭功能,若是不想用这个版本了,个人建议最好用关闭,删除容易导致版本混乱,我删过好几次导致版本乱了,最后出了些乱七八糟的问题)

4、打开手机上的APP,即可接收到新版本的推送。不过这个推送只是在APP打开时会提醒,其他时候不会,像微信的更新一样。

(更详细的可以看官网,有图有真相,我这里就记录个大概)

二、手动更新:

像微信里的设置一样:若当前版本有更新了,会有个红色的“new”,点一下进入到更新的页面。

我这里模仿该功能:若是有更新了,显示红色的“new”,点击时弹出“自动更新”一样的弹出框让更新。若是没有更新不显示"new"字样,点击也没有效果。

页面代码如下:

<a class="weui-cell weui-cell_access" href="javascript:void(0);" onclick="checkUpdate();">
          <div class="weui-cell__hd"><img src="images/gx.png"></div>
          <div class="weui-cell__bd" style=""><p>版本更新</p></div>
           <div class="weui-new" id="remind">NEW</div>
          <div class="weui-code" id="versionID"></div>
          <div class="weui-cell__ft"></div>
</a>

JS处理如下:

apiready=function(){	
	//判断是否有新的版本,若是有让new字样显示
	var mam = api.require('mam');
	mam.checkUpdate(function(ret, err) {
		if (ret) {
			var result = ret.result;
			if (result.update == true && result.closed == false) {//说明有更新
				//显示更新字样提示更新
				$("#remind").show();
			}
		}
	});
}

//点击“版本更新”时触发该事件
function checkUpdate() {
//先判断是否有提示更新,若没有提示暂无更新
if(!($("#remind").is(":visible"))){
	api.alert({
        msg : "暂无更新"
    });
    return false;
}
var mam = api.require('mam');
mam.checkUpdate(function(ret, err) {
    if (ret) {
        var result = ret.result;
        if (result.update == true && result.closed == false) {
            var str = '最新版本:' + result.version + '\n更新描述\n:' + result.updateTip + '\n发布时间:' + result.time;
            api.confirm({
                title : '更新提示',
                msg : str,
                buttons : ['取消','立即更新' ]
            }, function(ret, err) {
                if (ret.buttonIndex == 2) {
                    if (api.systemType == "android") {
                        api.download({
                            url : result.source,
                            report : true
                        }, function(ret, err) {
                            if (ret && 0 == ret.state) {/* 下载进度 */
                                api.toast({
                                    msg : "正在下载应用" + ret.percent + "%",
                                    duration : 2000
                                });
                            }
                            if (ret && 1 == ret.state) {/* 下载完成 */
                                var savePath = ret.savePath;
                                api.installApp({
                                    appUri : savePath
                                });
                            }
                        });
                    }
                    if (api.systemType == "ios") {
                        api.installApp({
                            appUri : result.source
                        });
                    }
                }
            });
        } else {
            api.alert({
                msg : "暂无更新"
            });
            }
        } else {
            api.alert({
                msg : err.msg
            });
        }
    });
}

记得添加mam模块。

祝好运!

猜你喜欢

转载自1017401036.iteye.com/blog/2373173