使用Appcan客户端自动更新PHP版本号(全),appcan版本号
在项目开发过程中遇到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 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('', '当前有新版本,是否更新?', 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端更新提示:
弹窗内容根据 version.php 文件内容可以自定义。
以上内容就是本文讲解使用Appcan客户端自动更新PHP版本号的方法,希望对大家有所帮助。

大家在系统上连接任何新的硬件设备时Windows都会自动尝试为其安装驱动程序,在系统内置的驱动包无法识别时还会自动尝试连接到WindowsUpdate去搜索和安装驱动。Windows也可以在无需用户交互的情况下,通过WindowsUpdate自动更新设备的驱动程序。这个功能看起来虽然方便,但在特定情况下,自动更新驱动这一特性反而会给用户造成麻烦。例如,用户的视频工作流如DaVinciResolve、AdobePremiere等需要用某个特定老版本的NvidiaStudio驱动,结果Windows

很多用户在日常使用电脑的时候总是会接收到系统的自动更新,不仅让电脑变慢还变卡,为此我们今天给大家带来了win11不想自动更新操作方法,如果自动更新一直影响你就来看看怎么关闭吧。windows11系统不想自动更新怎么弄1、首先右击桌面“此电脑”然后选择“管理”。2、在打开的“计算机管理”中,按依次点开“服务”→“应用程序”→“服务”→“Windowsupdate”。3、接下来双击“Windowsupdate”,将“启动类型”设置为“禁用”,点击“停止”服务并确定。4、点击“恢复”选项卡,将第一次失

如何开发一个自动更新WordPress插件的功能WordPress是一个非常流行的开源内容管理系统(CMS),拥有丰富的插件市场来扩展其功能。为了确保插件始终保持最新和安全,开发者需要实现自动更新功能。在本文中,我们将介绍如何开发一个自动更新WordPress插件的功能,并提供代码示例来帮助您迅速上手。准备工作在开始开发之前,您需要准备以下几个关键的步骤:创

在使用win10系统的时候,我们都经常会遇到更新的问题,这个更新有时候很烦人,那么怎么才能解决这个问题呢,这个需要我们进入到本地组策略里面去设置。win10组策略关闭自动更新方法:1、按下键盘上的“win+R”打开运行,输入“gpedit.msc”点击确定。2、选择“管理模板”-“Windows组件”,双击进入3、然后找到“Windows更新”,双击进入。4、在右边找到“配置自动更新”,鼠标双击打开。5、然后勾选“已禁用”,然后点击“应用”,就行了。

很多人在办公中都在使用office2016下载,但是你们知道office2016下载怎样关闭自动更新吗?下文小编就讲述了office2016下载关闭自动更新的方法,感兴趣的用户快来下文看看吧。先打开一个组件,比如可以打开Office2016的EXCEL电子表格软件,其它组件也是可以的。点击界面左上角的文件菜单,如图所示操作。在左侧这里找到账户选项打开进入,开始进行操作。点击更新选项中的禁用更新按钮。当Office更新这里显示为无法更新此产品的时候,说明我们设置完成。当我们以后需要更新的时候,我们

现在的手机是越来越强大的,功能越来越全面,也为用户们提供更为舒适的使用体验,Redmi13C作为最新发布的新机型,各种功能也是很多的,而且还为用户们带来了很多新的设计,那么红米13c怎么关闭自动更新呢?下面就让本站小编来为大家简单介绍功能吧,大家有需要的话可以来一起看看哦。红米13c怎么关闭自动更新?1.打开手机设置,点击我的设备。2.点击MIUI版本。3.点击右上角的三个点。4.点击系统更新设置。5.将自动下载和智能更新后面的开关关闭即可。关闭自动更新还是有必要了解一下的,以上这些就是红米13

麒麟操作系统如何提供自动更新和升级功能?随着科技的不断进步和操作系统的日益重要,用户对于操作系统的稳定性、安全性和功能的要求也越来越高。为了满足用户的需求,操作系统需要提供自动更新和升级功能,及时修复漏洞和添加新功能。麒麟操作系统作为国产自主研发的操作系统,也不例外,它提供了自动更新和升级的功能。在麒麟操作系统中,自动更新和升级的功能主要通过软件包管理器和更

很多用户们在使用电脑的时候,有时候出现了故障只能在安全模式下操作,但是安全模式一直自动更新,带来了不必要的麻烦,其实关闭的方法也不是很难只要禁用一下就好了。win10安全模式怎么取消自动更新:1、按下键盘“Win+R”在运行框内输入“services.msc”点击“确定”2、在弹出的服务中找到“WindowsUpdate”3、把“启动类型”改为禁用,然后点击“应用”即可


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

PhpStorm 맥 버전
최신(2018.2.1) 전문 PHP 통합 개발 도구

에디트플러스 중국어 크랙 버전
작은 크기, 구문 강조, 코드 프롬프트 기능을 지원하지 않음

맨티스BT
Mantis는 제품 결함 추적을 돕기 위해 설계된 배포하기 쉬운 웹 기반 결함 추적 도구입니다. PHP, MySQL 및 웹 서버가 필요합니다. 데모 및 호스팅 서비스를 확인해 보세요.

Eclipse용 SAP NetWeaver 서버 어댑터
Eclipse를 SAP NetWeaver 애플리케이션 서버와 통합합니다.
