使用Appcan用戶端自動更新PHP版本號碼(全),appcan版本號碼_PHP教程

來源:互聯網
上載者:User

使用Appcan用戶端自動更新PHP版本號碼(全),appcan版本號碼


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

服務端檔案:update.php、version.php、version.xml

update.php 內容:

PHP

<?phpdefine('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 "";      echo "i2ty";//用戶端名字      echo "itunesURL";//返回給用戶端的下載地址      echo "0";//檔案大小      echo "".$version."";//版本資訊      echo "";      break;    case "1"://android      echo "<?xml version=\"1.0\" encoding=\"utf-8\"?>";      echo "";      echo "i2ty";//用戶端名字      echo "http://i2ty.com/app/".$android_filename."";//返回給用戶端的下載地址      echo "0";//檔案大小      echo "".$version."";//版本資訊      echo "";      break;  }}?>

version.php 內容:

PHP

<?phpdefine('CIN', true);$result['vtitle']="更新";$result['vcontent']="新版本有更新喔!~新增功能修複各種錯誤";print_r(json_encode($result));?>version.xml 內容:PHP<?xml version="1.0" encoding="utf-8" ?> index.html 用戶端:PHPwindow.uexOnload = function(type){       if (!type) {      update();    }var flag_sdcard = 1;var updateurl = '';//下載新apk檔案地址var filepath2 = "/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(filepath2+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, filepath2+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 + "
檔案名稱:" + obj.name + "
檔案大小:" + // obj.size + "
版本號碼:" + 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 + "
檔案名稱:" + obj.name + "
檔案大小:" + //obj.size + "
版本號碼:" + 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端更新提示:

彈窗內容根據 version.php 檔案內容可以自訂。

以上內容就是本文講解使用Appcan用戶端自動更新PHP版本號碼的方法,希望對大家有所協助。

http://www.bkjia.com/PHPjc/1041327.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/1041327.htmlTechArticle使用Appcan用戶端自動更新PHP版本號碼(全),appcan版本號碼 在項目開發過程中遇到app端自動更新,查閱了相關資料然後把Appcan用戶端自動更新...

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.