zoukankan      html  css  js  c++  java
  • HBuilder的app自动更新

    hbuilder自动跟新思路:首先获取到当前版本号,对比需要更新版本号,是否一致;否:开始更新

    var wgtVer = null;

    function plusReady() {
    // Android处理返回键
    plus.key.addEventListener('backbutton', function() {
    if(confirm('确认退出?')) {
    plus.runtime.quit();
    }
    }, false);

    // 获取本地应用资源版本号
    plus.runtime.getProperty(plus.runtime.appid, function(inf) {
    wgtVer = inf.version;
    console.log("当前应用版本:" + wgtVer);
    checkUpdate();
    });
    }
    if(window.plus) {
    plusReady();
    } else {
    document.addEventListener('plusready', plusReady, false);
    }

    var checkUrl = "1.0.5"; //版本号从服务器获取
    function checkUpdate() {
    plus.nativeUI.showWaiting("检测更新版本...");
    var xhr = new XMLHttpRequest();
    xhr.onreadystatechange = function() {
    switch(xhr.readyState) {

    //4完成
    case 4:
    plus.nativeUI.closeWaiting();
    if(xhr.status == 200) {200//ok  
    console.log("检测更新成功:" + xhr.responseText);
    var newVer = checkUrl; //xhr.responseText
    if(wgtVer && newVer && (wgtVer != newVer)) {
    downWgt();
    } else {
    plus.nativeUI.alert("已是最新版,无需更新!");
    }
    } else {
    console.log("检测失败!" + xhr.status + "。。。" + xhr.readyState);
    plus.nativeUI.alert("检测失败!");
    }
    break;
    default:
    break;
    }
    }
    xhr.open('GET', checkUrl);
    xhr.send();
    }

    //下载

    var Url = hturl + "APK/H5EC81A1A_HBGJ.apk"; /*下载页,资源路径*/
    function downWgt() {
    var cfi = confirm("是否下载新的安装包?");
    if(cfi == true) {
    plus.nativeUI.showWaiting("正在更新软件,请稍后...");
    var dtask = plus.downloader.createDownload(Url, {}, function(d, status) { /*wode.html可以默认不用改,留着就行了*/
    console.log(Url)
    if(status == 200) {
    console.log("成功:" + d.filename);
    open(d.filename); // 打开下载地址
    installWgt(d.filename);
    } else {
    console.log("打开下载页面失败!");
    plus.nativeUI.alert("打开下载页面失败!");
    }
    plus.nativeUI.closeWaiting();
    });

    //下载事件监控
    dtask.addEventListener("statechanged", function(task, status) {
    if(!dtask) {
    return;
    }
    switch(task.state) {
    case 0:
    console.log("未初始化!");
    break;
    case 1:
    console.log("开始下载!");
    break;
    case 2:
    console.log("连接到服务器!");
    break;
    case 3:
    console.log("接收数据!");
    break;
    case 4:
    console.log("下载完成!");
    break;
    }
    });
    dtask.start();
    }
    else {

    }
    }

    //安装

    function installWgt(path) {
    plus.nativeUI.showWaiting("安装wgt文件...");
    plus.runtime.install(path, {}, function() {
    plus.nativeUI.closeWaiting();
    console.log("安装wgt文件成功!");
    plus.nativeUI.alert("应用资源更新完成!", function() {
    plus.runtime.restart();
    });
    }, function(e) {
    plus.nativeUI.closeWaiting();
    console.log("安装wgt文件失败[" + e.code + "]:" + e.message);
    plus.nativeUI.alert("安装wgt文件失败[" + e.code + "]:" + e.message);
    });
    }

     plus.downloader.createDownload官网讲解:http://www.html5plus.org/doc/zh_cn/downloader.html

  • 相关阅读:
    C# 读取计算机CPU,HDD信息
    实现多线程下载文件
    安装SharePoint Server的主机重命名
    SharePoint 2010: Change welcome page on PowerShell
    FW: Solving SharePoint Server -503. The service is unavailable, After installation
    XDocument 使用
    ListBox 控件单击事件
    设计Popup Window
    Listbox Binding ItemsSource
    ListBox item Sort
  • 原文地址:https://www.cnblogs.com/yeyuqian/p/9910273.html
Copyright © 2011-2022 走看看