使用appcan客户端自动更新php版本号(全),appcan版本号在项目开发过程中遇到app端自动更新,查阅了相关资料然后把appcan客户端自动更新php版本号的方法整理出来,具体代码讲解如下。
服务端文件:update.php、version.php、version.xml
update.php 内容:
php
news['iphone_filename']; //iphone下载文件$android_filename=$info->news['android_filename']; //androiad下载文件$version=$info->news['version']; //版本号if ($version>$oldver){ switch ($platform) { case 0://iphone echo ; echo ; echo i2ty;//客户端名字 echo itunesurl;//返回给客户端的下载地址 echo 0;//文件大小 echo .$version.;//版本信息 echo ; break; case 1://android echo ; echo ; echo i2ty;//客户端名字 echo http://i2ty.com/app/.$android_filename.;//返回给客户端的下载地址 echo 0;//文件大小 echo .$version.;//版本信息 echo ; break; }}?>
version.php 内容:
php
version.xml 内容:php 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客户端自动更新...