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;
        }
    });
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM