多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
APP调试 ~~~ Android studio 手机 ~~~ app:更新 ~~~ 强制、用户自主选择 ~~~ 方法: ~~~ 开设api接口 端app识别接口做相关判定 ~~~ 客户端 ~~~ 将数据用aes加密作为 授权码sign 且每次请求都携带它 请求服务端时携带app_type与version以及sign ~~~ 服务器 ~~~ 解密sign 比较数据与sign解密后的数据 以检查数据是否合法 合法后组装数据返回 ~~~ 版本升级: 升级数据表 ~~~ CREATE TABLE IF NOT EXISTS `ent_version` ( `id` int(10) unsigned NOT NULL, `app_type` varchar(20) NOT NULL DEFAULT '' COMMENT 'app类型 比如 ios android', `version` int(8) unsigned NOT NULL DEFAULT '0' COMMENT '内部版本号', `version_code` varchar(20) NOT NULL DEFAULT '' COMMENT '外部版本号比如1.2.3', `is_force` tinyint(1) unsigned NOT NULL DEFAULT '0' COMMENT '是否强制更新0不,1强制更新', `apk_url` varchar(255) NOT NULL DEFAULT '' COMMENT 'apk最新地址', `upgrade_point` varchar(500) NOT NULL DEFAULT '' COMMENT '升级提示', `status` tinyint(1) NOT NULL DEFAULT '0' COMMENT '状态', `create_time` int(10) unsigned NOT NULL DEFAULT '0', `update_time` int(10) unsigned NOT NULL DEFAULT '0' ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8; ~~~ 逻辑代码 ~~~ <?php namespace app\api\controller\v1;//多层级留下 use think\Controller; use app\api\controller\Common; class Index extends Common{ /*这个是点击app 启动时触发*/ public function init(){ //取出version表最后一条数据 $version=model("Version")->getLastNormalVersionByAppType($this->headers['app_type']); if (empty($version)) { return new ApiException("error ",404); } if ($version->version >$this->$header['version']) { $version->is_update=$version->is_force==1?2:1; }else{ $version->uis_update=0;//0不更新 1 需要更新 2 强制更新 } return show(config('code.success'),'ok',$version,200); } } ~~~ 启动app还需要记录某些信息