蝙蝠岛资源网 Design By www.hbtsch.com
在项目开发过程中遇到app端自动更新,查阅了相关资料然后把Appcan客户端自动更新PHP版本号的方法整理出来,具体代码讲解如下。
服务端文件:update.php、version.php、version.xml
update.php 内容:
PHP
<"0"://iphone
echo "<"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 "<"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;
}
}
"htmlcode">
<"更新";
$result['vcontent']="新版本有更新喔!~新增功能修复各种错误";
print_r(json_encode($result));
"1.0" encoding="utf-8" "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 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 + "<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('', '当前有新版本,是否更新"更新地址是:" + 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端更新提示:
弹窗内容根据 version.php 文件内容可以自定义。
以上内容就是本文讲解使用Appcan客户端自动更新PHP版本号的方法,希望对大家有所帮助。
蝙蝠岛资源网 Design By www.hbtsch.com
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
蝙蝠岛资源网 Design By www.hbtsch.com
暂无使用Appcan客户端自动更新PHP版本号(全)的评论...
更新日志
2025年10月27日
2025年10月27日
- 小骆驼-《草原狼2(蓝光CD)》[原抓WAV+CUE]
- 群星《欢迎来到我身边 电影原声专辑》[320K/MP3][105.02MB]
- 群星《欢迎来到我身边 电影原声专辑》[FLAC/分轨][480.9MB]
- 雷婷《梦里蓝天HQⅡ》 2023头版限量编号低速原抓[WAV+CUE][463M]
- 群星《2024好听新歌42》AI调整音效【WAV分轨】
- 王思雨-《思念陪着鸿雁飞》WAV
- 王思雨《喜马拉雅HQ》头版限量编号[WAV+CUE]
- 李健《无时无刻》[WAV+CUE][590M]
- 陈奕迅《酝酿》[WAV分轨][502M]
- 卓依婷《化蝶》2CD[WAV+CUE][1.1G]
- 群星《吉他王(黑胶CD)》[WAV+CUE]
- 齐秦《穿乐(穿越)》[WAV+CUE]
- 发烧珍品《数位CD音响测试-动向效果(九)》【WAV+CUE】
- 邝美云《邝美云精装歌集》[DSF][1.6G]
- 吕方《爱一回伤一回》[WAV+CUE][454M]
