博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
apiCloud手动检测更新
阅读量:6615 次
发布时间:2019-06-24

本文共 3563 字,大约阅读时间需要 11 分钟。

有时候需要给用户一个自主的权利,自主检测app是否是最新版本。

422101-20170301153507079-54900999.png

422101-20170301153512829-1576160313.png

如何实现?

1.点击调用接口,检测是否有更新。

默认APICloud会自动检测版本更新,用户也可以在config.xml里配置autoUpdate为false,然后使用mam模块来检测更新,mam模块还提供自定义事件功能

示例代码:

var mam = api.require('mam');mam.checkUpdate(function( ret, err ){    if (ret) {        alert( JSON.stringify( ret ) );    } else{        alert( JSON.stringify( err ) );    }});

返回数据:

{    status:true,                //操作成功状态值    result:    {        update:true,            //是否有更新        closed:true,            //设备上当前版本是否被强行关闭        version:'1.0',            //新版本版本号        versionDes:'',            //新版本更新描述        closeTip:'',            //提示用户应用版本被强行关闭时弹框的提示语        updateTip:'',            //提示用户有更新时弹框的提示语        source:'',                //新版本安装包的下载地址        time:''                    //新版本的发布时间    }}

2.弹出comfirm框,让用户选择是否升级

layer.confirm('有新版本啦!
最新版本:'+ret.result.version+'
更新描述:
'+updateTip+'
发布时间:'+ret.result.time,{ title:'更新提示', btn: ['立即更新','取消'] //按钮}, function(){}, function(){});

3.执行下载操作,api中有download方法

api.download({    url: url,    savePath: 'fs://test.rar',    report: true,    cache: true,    allowResume: true}, function(ret, err) {    if (ret.state == 1) {        //下载成功    } else {    }});

4.执行安装installApp方法

//Android用法:api.installApp({    appUri: 'file://xxx.apk'});//iOS用法:api.installApp({    appUri: 'https://list.kuaiapp.cn/list/KuaiAppZv7.1.plist' //安装包对应plist地址});

整合如下:

// 检查更新function checkUpdate() {    var mam = api.require('mam');    mam.checkUpdate(function( ret, err ){        if (ret) {            if (!ret.status) {                toast('服务器繁忙,请稍后再试');                return;            }            if (ret.result.update) {                var updateTip;                updateTip = ret.result.updateTip.replace(/\r\n/g,"
"); updateTip =updateTip.replace(/\n/g,"
"); layer.confirm('有新版本啦!
最新版本:'+ret.result.version+'
更新描述:
'+updateTip+'
发布时间:'+ret.result.time, { title:'更新提示', btn: ['立即更新','取消'] //按钮 }, function(){ if (api.systemType == "android") { api.download({ url : ret.result.source, report : true }, function(retdownload, err) { if (retdownload && 0 == retdownload.state) {
/* 下载进度 */ api.toast({ msg : "正在下载应用" + retdownload.percent + "%", duration : 2000 }); } if (retdownload && 1 == retdownload.state) {
/* 下载完成 */ var savePath = retdownload.savePath; api.installApp({ appUri : savePath }); } }); } if (api.systemType == "ios") { api.installApp({ appUri : ret.result.source }); } }, function(){ }); return; } else { toast('当前已是最新版本'); return; } } else{ toast('服务器繁忙,请稍后再试'); return; } });}本文转自TBHacker博客园博客,原文链接:http://www.cnblogs.com/jiqing9006/p/6484618.html,如需转载请自行联系原作者
你可能感兴趣的文章
java操作mongodb数据库
查看>>
自己动手写一个查询cet成绩的API
查看>>
http:与https:到底有哪些区别?
查看>>
细节决定成败----Android应用程序的优化(一)
查看>>
mac 下 gem安装 compass 遇到 '-multiply_defineds'
查看>>
怎样在MyEclipse中恢复误删的java文件方法
查看>>
redis-spring
查看>>
索引优缺点
查看>>
golang 组合class 输出
查看>>
【ZZ】python with...as...用法
查看>>
精美的国外扁平化网页设计作品
查看>>
Java中断机制
查看>>
windows下安装composer方法
查看>>
如何修改java.lang.OutOfMemoryError?
查看>>
机器学习--kNN算法
查看>>
Spark Streaming源码解读之Job动态生成和深度思考
查看>>
python---创建字典的方式
查看>>
【转】分布式数据流的轻量级异步快照
查看>>
WGS84经纬度坐标与Web墨卡托之间的转换
查看>>
goland编辑器护眼背景颜色设置
查看>>