apiCloud手动检测更新

简介:

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

如何实现?

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('有新版本啦!<br/>最新版本:'+ret.result.version+'<br/>更新描述:<br/>'+updateTip+'<br/>发布时间:'+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,"<BR>");
                updateTip =updateTip.replace(/\n/g,"<BR>");
                layer.confirm('有新版本啦!<br/>最新版本:'+ret.result.version+'<br/>更新描述:<br/>'+updateTip+'<br/>发布时间:'+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,如需转载请自行联系原作者

相关文章
|
小程序 PHP
[微擎]多系统共用accesstoken修复wifi小程序文本敏感词汇检测+图片检测原生php(可用)
[微擎]多系统共用accesstoken修复wifi小程序文本敏感词汇检测+图片检测原生php(可用)
|
移动开发 计算机视觉
百度人脸识别记录(2):熟悉H5 capture 调用摄像头
百度人脸识别记录(2):熟悉H5 capture 调用摄像头
83 0
|
数据库 Android开发
AndroidQ(10.0) 自带音乐APP正在扫描中bug修改
AndroidQ(10.0) 自带音乐APP正在扫描中bug修改
105 0
|
机器学习/深度学习 人工智能 分布式计算
基于YOLOv5算法的APP弹窗检测方案
基于YOLOv5算法的APP弹窗检测方案
|
计算机视觉
百度人脸识别文档冲突,facetype应是face_type
百度人脸识别文档冲突,facetype应是face_type
114 0
百度人脸识别文档冲突,facetype应是face_type
|
存储 算法 数据库
Study-基于Hough变化的答题卡识别
Study-基于Hough变化的答题卡识别
633 1
Study-基于Hough变化的答题卡识别
【PR】简单快捷覆盖影片的logo
【PR】简单快捷覆盖影片的logo
113 0
【PR】简单快捷覆盖影片的logo
|
监控 JavaScript 前端开发
Fundebug录屏插件更新至0.5.0,新增domain参数
摘要: 通过配置domain来保证“视频”的正确录制 录屏功能介绍 Fundebug提供专业的异常监控服务,当线上应用出现 BUG 的时候,我们可以第一时间报警,帮助开发者及时发现 BUG,提高 Debug 效率。
1035 0
|
XML API 数据格式
最新高通 Vuforia 7.0.47 版本-对应API-动态加载、卸载识别库-闪光灯-对焦-翻转摄像头-动态更改识别数量等
整理了下Vuforia 7 版本对应识别功能的函数 基本上和6版本无差异 Vuforia版本获取 string vuforiaVersion = Vuforia.
1168 0