• 获取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;
        }
  • 相关阅读:
    python中F/f表达式优于format()表达式
    java8新特性-foreach&lambda
    Java实现多线程的四种方式
    Java中的字符串常量池,栈和堆的概念
    java对象只有值传递,为什么?
    面向对象和面向过程程序设计理解及区别
    String对象为什么不可变
    mybatis_plus插件——生成器
    基于grpc的流式方式实现双向通讯(python)
    Django使用DataTables插件总结
  • 原文地址:https://www.cnblogs.com/wangyuman26/p/5922974.html
Copyright © 2020-2023  润新知