侯体宗的博客
  • 首页
  • 人生(杂谈)
  • 技术
  • 关于我
  • 更多分类
    • 文件下载
    • 文字修仙
    • 中国象棋ai
    • 群聊
    • 九宫格抽奖
    • 拼图
    • 消消乐
    • 相册

使用Appcan客户端自动更新PHP版本号(全)

php  /  管理员 发布于 7年前   190

在项目开发过程中遇到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) {// 是iphoneuexWidget.checkUpdate();// 直接调用检查更新,检查更新地址在config.xml里面有配置 } else if (data == 1) {// 是androidflag_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版本号的方法,希望对大家有所帮助。

您可能感兴趣的文章:

  • 利用PHP如何写APP接口详解
  • 浅谈使用 PHP 进行手机 APP 开发(API 接口开发)
  • 傻瓜化配置PHP环境――Appserv
  • php微信支付之APP支付方法
  • 基于AppServ,XAMPP,WAMP配置php.ini去掉警告信息(NOTICE)的方法详解
  • 用php实现像JSP,ASP里Application那样的全局变量
  • PHP中auto_prepend_file与auto_append_file用法实例分析
  • php和asp利用Shell.Application来执行程序的代码
  • PHP编写简单的App接口


  • 上一条:
    初识通用数据库操作类――前端easyui-datagrid,form(php)
    下一条:
    php使用Imagick生成图片的方法
  • 昵称:

    邮箱:

    0条评论 (评论内容有缓存机制,请悉知!)
    最新最热
    • 分类目录
    • 人生(杂谈)
    • 技术
    • linux
    • Java
    • php
    • 框架(架构)
    • 前端
    • ThinkPHP
    • 数据库
    • 微信(小程序)
    • Laravel
    • Redis
    • Docker
    • Go
    • swoole
    • Windows
    • Python
    • 苹果(mac/ios)
    • 相关文章
    • Laravel从Accel获得5700万美元A轮融资(0个评论)
    • PHP 8.4 Alpha 1现已发布!(0个评论)
    • 用Time Warden监控PHP中的代码处理时间(0个评论)
    • 在PHP中使用array_pop + yield实现读取超大型目录功能示例(0个评论)
    • Property Hooks RFC在PHP 8.4中越来越接近现实(0个评论)
    • 近期文章
    • 在windows10中升级go版本至1.24后LiteIDE的Ctrl+左击无法跳转问题解决方案(0个评论)
    • 智能合约Solidity学习CryptoZombie第四课:僵尸作战系统(0个评论)
    • 智能合约Solidity学习CryptoZombie第三课:组建僵尸军队(高级Solidity理论)(0个评论)
    • 智能合约Solidity学习CryptoZombie第二课:让你的僵尸猎食(0个评论)
    • 智能合约Solidity学习CryptoZombie第一课:生成一只你的僵尸(0个评论)
    • 在go中实现一个常用的先进先出的缓存淘汰算法示例代码(0个评论)
    • 在go+gin中使用"github.com/skip2/go-qrcode"实现url转二维码功能(0个评论)
    • 在go语言中使用api.geonames.org接口实现根据国际邮政编码获取地址信息功能(1个评论)
    • 在go语言中使用github.com/signintech/gopdf实现生成pdf分页文件功能(95个评论)
    • gmail发邮件报错:534 5.7.9 Application-specific password required...解决方案(0个评论)
    • 近期评论
    • 122 在

      学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..
    • 123 在

      Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..
    • 原梓番博客 在

      在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..
    • 博主 在

      佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..
    • 1111 在

      佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
    • 2016-10
    • 2016-11
    • 2017-06
    • 2017-07
    • 2017-08
    • 2017-09
    • 2017-11
    • 2017-12
    • 2018-01
    • 2018-02
    • 2018-03
    • 2020-03
    • 2020-04
    • 2020-05
    • 2020-06
    • 2020-07
    • 2020-09
    • 2021-02
    • 2021-03
    • 2021-04
    • 2021-05
    • 2021-06
    • 2021-07
    • 2021-08
    • 2021-09
    • 2021-10
    • 2021-11
    • 2021-12
    • 2022-01
    • 2022-02
    • 2022-05
    • 2022-06
    • 2022-07
    • 2022-08
    • 2022-09
    • 2022-10
    • 2022-11
    • 2022-12
    • 2023-01
    • 2023-02
    • 2023-03
    • 2023-04
    • 2023-05
    • 2023-06
    • 2023-07
    • 2023-08
    • 2023-09
    • 2023-10
    • 2023-11
    • 2023-12
    • 2024-01
    • 2024-02
    • 2024-03
    • 2024-04
    • 2024-05
    • 2024-06
    • 2024-07
    • 2024-09
    Top

    Copyright·© 2019 侯体宗版权所有· 粤ICP备20027696号 PHP交流群

    侯体宗的博客