亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何使用Appcan客戶端自動更新PHP版本號

發布時間:2021-09-02 14:12:40 來源:億速云 閱讀:170 作者:小新 欄目:開發技術

這篇文章主要為大家展示了“如何使用Appcan客戶端自動更新PHP版本號”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“如何使用Appcan客戶端自動更新PHP版本號”這篇文章吧。

在項目開發過程中遇到app端自動更新,查閱了相關資料然后把Appcan客戶端自動更新PHP版本號的方法整理出來,具體代碼講解如下。

服務端文件:update.php、version.php、version.xml

update.php 內容:

PHP

<?php
define('CIN', true);
$oldver = $_REQUEST['ver'];//客戶端傳過來的版本號
$platform = $_REQUEST['platform'];//客戶端的平臺
$info = simplexml_load_file('version.xml');
$iphone_filename=$info->news['iphone_filename']; //iphone下載文件
$android_filename=$info->news['android_filename']; //androiad下載文件
$version=$info->news['version']; //版本號
if ($version>$oldver)
{
  switch ($platform)
  {
    case "0"://iphone
      echo "<?xml version=\"1.0\" encoding=\"utf-8\"?>";
      echo "<results>";
      echo "<updateFileName>i2ty</updateFileName>";//客戶端名字
      echo "<updateFileUrl>itunesURL</updateFileUrl>";//返回給客戶端的下載地址
      echo "<fileSize>0</fileSize>";//文件大小
      echo "<version>".$version."</version>";//版本信息
      echo "</results>";
      break;
    case "1"://android
      echo "<?xml version=\"1.0\" encoding=\"utf-8\"?>";
      echo "<results>";
      echo "<updateFileName>i2ty</updateFileName>";//客戶端名字
      echo "<updateFileUrl>http://i2ty.com/app/".$android_filename."</updateFileUrl>";//返回給客戶端的下載地址
      echo "<fileSize>0</fileSize>";//文件大小
      echo "<version>".$version."</version>";//版本信息
      echo "</results>";
      break;
  }
}
?>

version.php 內容:

PHP

<?php
define('CIN', true);
$result['vtitle']="更新";
$result['vcontent']="新版本有更新喔!~新增功能修復各種錯誤";
print_r(json_encode($result));
?>
version.xml 內容:
PHP
<?xml version="1.0" encoding="utf-8" ?>
<root desc="Login">
 <news version="00.00.0001" iphone_filename="i2ty.ipa"  android_filename="i2ty.apk" />
</root>
index.html 客戶端:
PHP
window.uexOnload = function(type){   
    if (!type) {
      update();
    }
var flag_sdcard = 1;
var updateurl = '';//下載新apk文件地址
var filepath3 = "/sdcard/";//保存到sd卡
var fileName = '';//新版本文件名
var platform = '';//平臺版本
function update()
{  
    //安卓版 ,顯示下載進度 (step:7)
    uexDownloaderMgr.onStatus = function(opId, fileSize, percent, status) {
        if (status == 0) {
            // 下載中...
            Log('download percent ' + percent + '%');
            uexWindow.toast('1', '5', '正在下載'+localStorage.app_title+'新版,請稍后。進度:' + percent + '%', '');
        } else if (status == 1) {// 下載完成.
            uexWindow.closeToast();
            uexDownloaderMgr.closeDownloader('14');//關閉下載對象
            uexWidget.installApp(filepath3+fileName);// 安裝下載apk文件
        } else {
            uexWindow.toast('1', '5', '下載出錯,請關閉'+localStorage.app_title+'再次運行.', '');
        }
    };
    //安卓版 ,創建下載對象回調函數(step:6)
    uexDownloaderMgr.cbCreateDownloader = function(opId, dataType, data) {
        Log('uexDownloaderMgr.cbCreateDownloader data='+data);
        if (data == 0) {
            //updateurl是通過調用cbCheckUpdate回調后,放入全局變量的
            uexDownloaderMgr.download('14', updateurl, filepath3+fileName, '0');//開始下載apk文件
        } else if (data == 1) { 
            ;
        } else {
            ;
        }
    };
    //提示更新模態框按鈕事件回調函數,判斷用戶選擇更新還是取消 (step:5)
    uexWindow.cbConfirm = function(opId, dataType, data) {
        Log('uexWindow.cbConfirm ');
        //調用對話框提示函數
        if (data == 0) {
            //用戶點擊稍后按鈕,不進行更新
        } else {
            //用戶點擊確定按鈕,進行更新
            if (platform == 0) {
                //蘋果版更新,通過瀏覽器加載appstore路徑
                uexWidget.loadApp(updateurl,'','');
                //uexWidget.loadApp("", "", updateurl);//舊方法 已經不可以使用了。
            } else if (platform == 1) {
                //安卓版更新,通過創建下載對象進行下載                
                uexDownloaderMgr.createDownloader("14");
            } else {
                ;
            }
        }
    };
    //調用檢查更新回調函數,請求成功后,彈出模態框讓用戶選擇是否現在更新(step:4)
    uexWidget.cbCheckUpdate = function(opCode, dataType, jsonData) {        
        Log('jsonData='+jsonData);
        var obj = eval('(' + jsonData + ')');
        if (obj.result == 0) {
            // tips = "更新地址是:" + obj.url + "<br>文件名:" + obj.name + "<br>文件大小:" +
            // obj.size + "<br>版本號:" + obj.version;
            updateurl = obj.url;
            fileName = obj.name+".apk";
            getVersionContent();
            // var value = "稍后;更新";
            // var mycars = value.split(";");
            // uexWindow.confirm('', '當前有新版本,是否更新?', mycars);//彈出提示框,是否確定更新
        } else if (obj.result == 1) {
            //蘋果
            //alert("更新地址是:" + obj.url + "<br>文件名:" + obj.name + "<br>文件大小:" +
            //obj.size + "<br>版本號:" + obj.version)
            ;// tips = "當前版本是最新的";alert(tips);
        } else if (obj.result == 2) {            
            ;// tips = "未知錯誤";alert(tips);
        } else if (obj.result == 3) {            
            ;// tips = "參數錯誤";alert(tips);
        }
    };
    //檢查是否已經存在sd卡的回調函數(step:3)
    uexFileMgr.cbIsFileExistByPath = function(opCode, dataType, data) {
        Log('uexFileMgr.cbIsFileExistByPath flag_sdcard='+flag_sdcard+' , data='+data);
        if (flag_sdcard == 0) {
            if (data == 0) {
                Log('sdcard不存在,根據具體情況處理');
            } else {
                //執行檢查更新
                uexWidget.checkUpdate();//根據config.xml里面配置的檢查更新地址發起http請求
            }
            flag_sdcard = 1;
        } 
    };
    //獲取平臺版本回調函數,確定是客戶端是那個平臺的客戶端 (step:2)
    uexWidgetOne.cbGetPlatform = function(opId, dataType, data) {
        Log('uexWidgetOne.cbGetPlatform ');
        //獲取系統版本信息回調函數
        platform = data;
        Log('platform= '+platform);
        if (data == 0) {
            // 是iphone
            uexWidget.checkUpdate();// 直接調用檢查更新,檢查更新地址在config.xml里面有配置
        } else if (data == 1) {
            // 是android
            flag_sdcard = 0;
            uexFileMgr.isFileExistByPath('/sdcard/');//先判斷是否存在sd卡,再調用checkUpdate來進行更新
        } else {
            // 是平臺
        }
    };
    uexWidgetOne.getPlatform();//獲取平臺版本 (step:1)
}
function Log(s) {
    uexLog.sendLog(s);
}
function getVersionContent(){
    var url = web_url+"version.php";
    uexXmlHttpMgr.onData = getvSuccess;
    uexXmlHttpMgr.open(777, "get", url,"");
    uexXmlHttpMgr.send(777); 
}
function getvSuccess(opid,status,result){
    if (status == -1) {
      uexWindow.toast("0","5","連接不上網絡^_^哦","3000");
    }
    if(status==1){
    uexXmlHttpMgr.close(777);
    uexWindow.closeToast();
    if(result=="[]"){uexWindow.toast("0","5","無","2000");}
    else{
      var con=eval('(' + result + ')')
      var value = "稍后;更新";
      var mycars = value.split(";");
      uexWindow.confirm(con.vtitle, con.vcontent, mycars);//彈出提示框,是否確定更新
      }
    }
}

最后app 的 config.xml 文件配置更新地址填寫為:

http://www.i2ty.com/update.php

APP端更新提示:

如何使用Appcan客戶端自動更新PHP版本號

彈窗內容根據 version.php 文件內容可以自定義。

以上是“如何使用Appcan客戶端自動更新PHP版本號”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

舒城县| 会理县| 怀化市| 喀喇沁旗| 定远县| 吴江市| 南漳县| 临城县| 化隆| 云梦县| 安达市| 涿州市| 虞城县| 北宁市| 聂荣县| 萝北县| 资中县| 吐鲁番市| 江西省| 玛多县| 涟水县| 宜黄县| 望城县| 沙洋县| 缙云县| 苏尼特左旗| 南陵县| 连南| 吉木萨尔县| 廊坊市| 达孜县| 竹溪县| 福州市| 广安市| 新乐市| 子洲县| 贵溪市| 清水县| 威海市| 灵丘县| 新乡市|