私有api:升级检查版本比较

私有api,提供app检查新版本的功能。

纯数字好比较,如何比较1.0.1和1.0.2?

业务逻辑:用户版本比最新版本低时,提示升级。

同时支持这两种,代码如下:

<?php
/**
 * 检测最新版本
 */

function isSecondBigger($first, $second) {
    //纯数字比较
    if(is_numeric($first) && is_numeric($second)) {
        if($second > $first) {
            return true;
        }
        else {
            return false;
        }
    }
    //x.x.x.x比较
    if(stripos($second, '.') !== false) {
        $f = explode('.', $first);
        $s = explode('.', $second);
        $count = count($f);
        foreach($f as $k => $v) {
            //比如1.0比2.0
            if($s[$k] > $v) {
                return true;
            }
            //前面几位相等没关系,最后一位必须大于
            //比如1.0.5比1.0.8
            if(($count == $k+1) && ($s[$k] > $v)) {
                return true;
            }
        }
    }
    return false;
}
$v = '1.0.5'; //用户版本
$latest = '1.0.8'; //最新版本
$is_need_update = false;
if(isSecondBigger($v, $latest)) {
    $is_need_update = true;
}
var_dump($is_need_update);
?>

api:http://api.example.com/latest?app_id=1&v=1.0.2&wlt=zh-Hans

输入:

app_id:私有api为本公司的多个app分配id,比如Andriod、iPhone、iPad、PC各有一个。

v:用户安装的版本号

wlt:文字代号,比如ios使用的en_US、zh-hant、zh_CN等等,Android使用的zh_CN、zh、zh_TW等等,由后端进行映射处理,app端直接取系统值传过来即可。

参考资料:

http://developer.android.com/reference/java/util/Locale.html

原文地址:https://www.cnblogs.com/sink_cup/p/private_api_check_update_compare_version.html