获取APP最新版本的接口案例
思路:
开发初期。安卓的应用可能没有上传到应用市场,可以把应用apk放到服务器上,供用户下载。把对应用的版本信息整理成为一个XML文件,放到服务器上,通过接口读取xml文件,获取有版本信息,然后安卓端判断版本是不是最新的,如果不是最新的提示用户升级。
XML文件内容:
<update>
<version>18</version>
<name>2.1.4</name>
<content>版本更新描述</content>
<url>http://app.xxxx.com/Public/apk/BusGCF.apk</url>
</update>
接口DEMO:
//获取最新版本信息
public function getNewVersions($param){
$client = $param->client; //获取安卓的最新版本信息
if($client == "Android") {
$xml = "";
//打开文件
$f = fopen('http://app.xxxx.com/Public/apk/version.xml', 'r');
//循环读取文件的全部内容,每次读取4096个字符
while( $data = fread( $f, 4096 ) ) {
$xml .= $data;
}
//关闭一个打开文件
fclose( $f ); //上面读取数据
preg_match_all( "/\<update\>(.*?)\<\/update\>/s", $xml, $humans ); //匹配最外层标签里面的内容 foreach( $humans[1] as $k=>$human ) {
preg_match_all( "/\<version\>(.*?)\<\/version\>/", $human, $version ); //匹配出版本号
preg_match_all( "/\<content\>(.*?)\<\/content\>/", $human, $content ); //匹配新版本的描述
preg_match_all( "/\<name\>(.*?)\<\/name\>/", $human, $name ); //匹配出姓名
preg_match_all( "/\<url\>(.*?)\<\/url\>/", $human, $url ); //匹配出Url
} $r_version = $version[1][0];
$r_content = $content[1][0];
$r_name = $name[1][0];
$r_url = $url[1][0]; if($r_version == '' or $r_name == '' or $r_url == '') {
$array['status'] = 1;
$array['comment'] = '查询失败!';
return $array;
} $array['status'] = 0;
$array['comment'] = '查询成功';
$responseParameters['version'] = $r_version;
$responseParameters['content'] = $r_content;
$responseParameters['name'] = $r_name;
// $responseParameters['url'] = "http://app.xxxx.com/Public/apk/BusGCF.apk";
$responseParameters['url'] = $r_url;
$array['responseParameters'] = $responseParameters;
} return $array;
}
获取APP最新版本的接口案例的更多相关文章
- Oracle 获取数据最新版本
表数据如: 以CODE 作为版本分组字段,对创建时间进行按最新排序 ID NAME CODE CREATE_TIME 1ffg abc 001 2014-01-01 1gff ...
- 网站漏洞修复案例之Discuz!3.4最新版本
Discuz!论坛目前最新版本为3.4版本,已经好久没有更新了,我们SINE安全在对其网站安全检测的同时发现一处漏洞,该漏洞可导致论坛的后台文件可以任意的删除,导致网站瘫痪,后台无法登陆.关于该网站漏 ...
- Android开发之获取APP的应用程序名称以及版本名称信息java工具类
//跟App相关的辅助类 public class AppUtils { private AppUtils() { /* cannot be instantiated */ throw new Uns ...
- charles抓不到APP内的某些接口-解决部分汇总
首先,让我哭会,我竟然自己解决了问题.网上查的解决办法都试过了就是不管用,也问过前辈,就是没招. 果然,自立自强,勇者不息. Top1 问题:charles抓不到接口? 现象:web端的网络请求OK, ...
- 基于APNs最新HTTP/2接口实现iOS的高性能消息推送(服务端篇)
1.前言 本文要分享的消息推送指的是当iOS端APP被关闭或者处于后台时,还能收到消息/信息/指令的能力. 这种在APP处于后台或关闭情况下的消息推送能力,通常在以下场景下非常有用: 1)IM即时通讯 ...
- ABP开发框架前后端开发系列---(16)ABP框架升级最新版本的经验总结
有一小段时间没有持续升级ABP框架了,最近就因应客户的需要,把ABP框架进行全面的更新,由于我们应用的ABP框架,基础部分还是会使用官方的内容,因此升级的时候需要把官方基础ABP的DLL进行全面的更新 ...
- 大规模数据分析统一引擎Spark最新版本3.3.0入门实战
@ 目录 概述 定义 Hadoop与Spark的关系与区别 特点与关键特性 组件 集群概述 集群术语 部署 概述 环境准备 Local模式 Standalone部署 Standalone模式 配置历史 ...
- iOS逆向开发(2):获取APP的类声明 | class-dump | dumpdecrypted
之前介绍了怎么操作越狱的iOS设备(以下简称为手机),但简单操作手机并不是目标,小程的目标是手机上特定的APP,比如微信.淘宝.QQ音乐等等,因为小程可以从这些APP上拿到一些有用的信息或资源--比如 ...
- 网易云音乐 歌词制作软件 BesLyric (最新版本下载)
导读 BesLyric , 一款专门制作 网易云音乐 LRC 滚动歌词的软件! 搜索.下载.制作 歌词更方便! 哈哈,喜欢网易云音乐,又愁于制作歌词的童鞋有福啦!Beslyric 为你排忧解难! 本文 ...
随机推荐
- 怎样用ZBrush对模型进行渲染
关于如何使用ZBrush®3D图形绘制软件雕刻僵尸模型,Fisker老师用了6个章节共41课时,从人体躯干和骨骼雕刻,到衣服.鞋子制作,再到顶点着色,向大家一一展示了雕刻过程,其中分享了很多ZBrus ...
- 【转载】Web移动端Fixed布局的解决方案
特别声明:本文转载于EFE的<Web移动端Fixed布局的解决方案>.如需转载,烦请注明原文出处:http://efe.baidu.com/blog/mobile-fixed-layout ...
- Leetcode: word search
July 6, 2015 Problem statement: Word Search Given a 2D board and a word, find if the word exists in ...
- Freemarker与普通java
package com.sxt.test.freemarker; import java.io.File; import java.io.OutputStreamWriter; import java ...
- jQuery与Struts2综合应用[stream/json]
一.使用stream类型的Result实现Ajax 具体步骤: ① 定义InputStream类型的成员变量及getter和setter ②具体业务方法中将要发送到客户端的json字符串赋值给成员变量 ...
- 关于安卓工程导出带res资源文件的jar的总结
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; line-height: 29.0px; font: 16.0px "Microsoft YaHei" ...
- SQL Server日志文件(LDF文件)
一.日志文件过大处理方法: 1.设置数据库模式为简单模式:ALTER DATABASE 数据库名 SET RECOVERY SIMPLE 或者选中数据库-属性-选项-恢复模式设置为简单. 2.收缩日志 ...
- 修改httpd默认端口号
Tomcat: vim /etc/httpd/conf/httpd.conf//别忘了service httpd restart Nginx: vim /etc/nginx/nginx.conf//完 ...
- [Bundling and Minification ] 四、总结
一.ASP.NET MVC 里面提供了一个默认的绑定集合BundleTable.Bundles 位于System.Web.Optimization下的静态类BundleTable中的一个静态变量.以下 ...
- linux下ftp的配置
最近公司要用到ftp,小菜鸡百度了一下教程,自己也总结一下 现在随便百度都是vsftpd的服务,所以这里我也是用vsftp 1.检测或安装vsftp 首先检查一下你的主机是否含有vsftp服务,关于r ...