ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、视频、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
# app接口 APP调试 ``` <pre class="calibre10">``` Android studio 手机 ``` ``` app:更新 ``` <pre class="calibre10">``` 强制、用户自主选择 ``` ``` 方法: ``` <pre class="calibre10">``` 开设api接口 端app识别接口做相关判定 ``` ``` 客户端 ``` <pre class="calibre10">``` 将数据用aes加密作为 授权码sign 且每次请求都携带它 请求服务端时携带app_type与version以及sign ``` ``` 服务器 ``` <pre class="calibre10">``` 解密sign 比较数据与sign解密后的数据 以检查数据是否合法 合法后组装数据返回 ``` ``` 版本升级: 升级数据表 ``` <pre class="calibre10">``` CREATE TABLE IF NOT EXISTS `ent_version` <span class="token3">(</span> `id` <span class="token4">int</span><span class="token3">(</span><span class="token6">10</span><span class="token3">)</span> unsigned NOT NULL<span class="token3">,</span> `app_type` <span class="token4">varchar</span><span class="token3">(</span><span class="token6">20</span><span class="token3">)</span> NOT NULL DEFAULT <span class="token2">''</span> COMMENT <span class="token2">'app类型 比如 ios android'</span><span class="token3">,</span> `version` <span class="token4">int</span><span class="token3">(</span><span class="token6">8</span><span class="token3">)</span> unsigned NOT NULL DEFAULT <span class="token2">'0'</span> COMMENT <span class="token2">'内部版本号'</span><span class="token3">,</span> `version_code` <span class="token4">varchar</span><span class="token3">(</span><span class="token6">20</span><span class="token3">)</span> NOT NULL DEFAULT <span class="token2">''</span> COMMENT <span class="token2">'外部版本号比如1.2.3'</span><span class="token3">,</span> `is_force` <span class="token4">tinyint</span><span class="token3">(</span><span class="token6">1</span><span class="token3">)</span> unsigned NOT NULL DEFAULT <span class="token2">'0'</span> COMMENT <span class="token2">'是否强制更新0不,1强制更新'</span><span class="token3">,</span> `apk_url` <span class="token4">varchar</span><span class="token3">(</span><span class="token6">255</span><span class="token3">)</span> NOT NULL DEFAULT <span class="token2">''</span> COMMENT <span class="token2">'apk最新地址'</span><span class="token3">,</span> `upgrade_point` <span class="token4">varchar</span><span class="token3">(</span><span class="token6">500</span><span class="token3">)</span> NOT NULL DEFAULT <span class="token2">''</span> COMMENT <span class="token2">'升级提示'</span><span class="token3">,</span> `status` <span class="token4">tinyint</span><span class="token3">(</span><span class="token6">1</span><span class="token3">)</span> NOT NULL DEFAULT <span class="token2">'0'</span> COMMENT <span class="token2">'状态'</span><span class="token3">,</span> `create_time` <span class="token4">int</span><span class="token3">(</span><span class="token6">10</span><span class="token3">)</span> unsigned NOT NULL DEFAULT <span class="token2">'0'</span><span class="token3">,</span> `update_time` <span class="token4">int</span><span class="token3">(</span><span class="token6">10</span><span class="token3">)</span> unsigned NOT NULL DEFAULT <span class="token2">'0'</span> <span class="token3">)</span> ENGINE<span class="token1">=</span>InnoDB AUTO_INCREMENT<span class="token1">=</span><span class="token6">3</span> DEFAULT CHARSET<span class="token1">=</span>utf8<span class="token3">;</span> ``` ``` 逻辑代码 ``` <pre class="calibre10">``` <span class="token1"><</span><span class="token1">?</span>php namespace app\api\controller\v1<span class="token3">;</span><span class="token">//多层级留下</span> use think\Controller<span class="token3">;</span> use app\api\controller\Common<span class="token3">;</span> class <span class="token4">Index</span> extends <span class="token4">Common</span><span class="token3">{</span> <span class="token">/*这个是点击app 启动时触发*/</span> public <span class="token5">function</span> <span class="token4">init</span><span class="token3">(</span><span class="token3">)</span><span class="token3">{</span> <span class="token">//取出version表最后一条数据</span> $version<span class="token1">=</span><span class="token4">model</span><span class="token3">(</span><span class="token2">"Version"</span><span class="token3">)</span><span class="token1">-</span><span class="token1">></span><span class="token4">getLastNormalVersionByAppType</span><span class="token3">(</span>$this<span class="token1">-</span><span class="token1">></span>headers<span class="token3">[</span><span class="token2">'app_type'</span><span class="token3">]</span><span class="token3">)</span><span class="token3">;</span> <span class="token5">if</span> <span class="token3">(</span><span class="token4">empty</span><span class="token3">(</span>$version<span class="token3">)</span><span class="token3">)</span> <span class="token3">{</span> <span class="token5">return</span> <span class="token5">new</span> <span class="token4">ApiException</span><span class="token3">(</span><span class="token2">"error "</span><span class="token3">,</span><span class="token6">404</span><span class="token3">)</span><span class="token3">;</span> <span class="token3">}</span> <span class="token5">if</span> <span class="token3">(</span>$version<span class="token1">-</span><span class="token1">></span>version <span class="token1">></span>$this<span class="token1">-</span><span class="token1">></span>$header<span class="token3">[</span><span class="token2">'version'</span><span class="token3">]</span><span class="token3">)</span> <span class="token3">{</span> $version<span class="token1">-</span><span class="token1">></span>is_update<span class="token1">=</span>$version<span class="token1">-</span><span class="token1">></span>is_force<span class="token1">==</span><span class="token6">1</span><span class="token1">?</span><span class="token6">2</span><span class="token3">:</span><span class="token6">1</span><span class="token3">;</span> <span class="token3">}</span><span class="token5">else</span><span class="token3">{</span> $version<span class="token1">-</span><span class="token1">></span>uis_update<span class="token1">=</span><span class="token6">0</span><span class="token3">;</span><span class="token">//0不更新 1 需要更新 2 强制更新 </span> <span class="token3">}</span> <span class="token5">return</span> <span class="token4">show</span><span class="token3">(</span><span class="token4">config</span><span class="token3">(</span><span class="token2">'code.success'</span><span class="token3">)</span><span class="token3">,</span><span class="token2">'ok'</span><span class="token3">,</span>$version<span class="token3">,</span><span class="token6">200</span><span class="token3">)</span><span class="token3">;</span> <span class="token3">}</span> <span class="token3">}</span> ``` ``` 启动app还需要记录某些信息