**APP版本升级**
>[success] 1.创建版本控制表
~~~
CREATE TABLE `td_app_update` (
`id` int(100) NOT NULL AUTO_INCREMENT,
`version` varchar(12) DEFAULT '0' COMMENT '版本号',
`url_name` varchar(100) DEFAULT NULL COMMENT 'app下载链接地址',
`upgrade` int(10) DEFAULT '0' COMMENT '2强制升级 1提醒升级 0不提醒升级',
`title` varchar(200) DEFAULT NULL COMMENT '更新标题',
`content` text COMMNET '更新内容',
`source` varchar(10) DEFAULT NULL COMMENT '来源 android 、ios',
`updatetime` varchar(50) DEFAULT NULL COMMENT '更新时间',
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=3 DEFAULT CHARSET=utf8
~~~
>[success]2.接口实现
~~~
public function update(){
$clientVersion = strtolower($this->client_version); //获取客户端的版本号
$source = strtolower($this->os); //获取客户端操作系统
$where['source'] = array('eq',$source);
//获取当前的版本
$result = M('AppUpdate')->where($where)->find();
if($this->versionCompare($result['version'],$clientVersion)){
if(!empty($result['url_name'])){
$data['url'] = $result['url_name'];
}
$data['upgrade'] = $result['upgrade'];
$data['title'] = $result['title'];
$data['content'] = $result['content'];
json_success($data);
}
json_success('ok');
}
/**
*@param $version1 版本A 如:5.3.2
*@param $version2 版本B 如:5.3.0
*@return int false版本A小于或等于版本B true版本A大于版本B
*/
private function versionCompare($versionA,$versionB) {
$verListA = explode('.', (string)$versionA);
$verListB = explode('.', (string)$versionB);
$len = max(count($verListA),count($verListB));
$i = -1;
while ($i++ < $len) {
$verListA[$i] = intval(@$verListA[$i]);
if ($verListA[$i] <0 ) {
$verListA[$i] = 0;
}
$verListB[$i] = intval(@$verListB[$i]);
if ($verListB[$i] <0 ) {
$verListB[$i] = 0;
}
if ($verListA[$i]>$verListB[$i]) {
return true;
} else if ($verListA[$i]
return false;
} else if ($i==($len-1)) {
return false;
}
}
}
~~~