uniapp安卓端应用内更新方案
一、实现思路在进入app的时候,通过当前应用版本号与远程版本号比较判断是否有新版本,若有新版本则提示并下载新版本,若没有则进入首页。˃本文主要探究如何渐进式的整合更新功能,引入更新功能不改变原有页
一、实现思路
在进入app的时候,通过当前应用版本号与远程版本号比较判断是否有新版本,若有新版本则提示并下载新版本,若没有则进入首页。
本文主要探究如何渐进式的整合更新功能,引入更新功能不改变原有页面逻辑
二、实现效果
三、实现步骤
1. 编写远程版本信息
<?php
function response($data = array(), $code = 0)
{
$arr['code'] = $code;
$arr['data'] = $data;
header('Content-Type: application/json; charset=utf-8');
return json_encode($arr);
}
// app 为 get或post请求的参数
$app = $_REQUEST['app_name'];
$data = array();
//version_name版本必须为00.00.00格式
if($app == 'demo'){
$data['check_version'] = true; //是否开启软件更新检测
$data['version_name'] = '1.0.19';//当前安卓版本名称
$data['version_code'] = 19;//当前安卓版本号
$data['version_tips'] = ['新增版本更新功能','修复已知问题'];//当前安卓版本号
$data['resource_url'] = "http://hxng.yunmell.com/app/package/app19.apk";//app主运行嵌套网址
}
exit(response($data));
2. 新增下载更新页面
http://git.yunmell.com:9898/Herrona/uniapp-modules.git
复制/pages/version_up文件夹到项目,并复制/pages.json里的页面路由
3. 编写版本处理js文件,例如/common/version.js
http://git.yunmell.com:9898/Herrona/uniapp-modules.git
复制/common/version.js文件到项目,并修改接口地址和应用名称
let url = ‘http://hxng.yunmell.com/app/version.php' //版本判断请求接口
let app_name = ‘demo’ //应用名字 需要与verison.php接口中的对应
4. 在App.vue里
<script>
import { checkVersion, versionResolve } from "@/common/version.js"
export default {
async onLaunch() {
if(uni.getSystemInfoSync().platform == 'android'){
await this.checkVersion()
}
},
methods: {
async checkVersion(){
const hasNewVersion = await checkVersion()
console.log("是否有新版本", hasNewVersion)
if(hasNewVersion){
uni.reLaunch({
url: "/pages/version_up/version_up",
})
}else{
versionResolve()
}
},
},
}
</script>
5. 在app入口页面
import { versionPromise } from "@/common/version.js"
async onLoad() {
if(uni.getSystemInfoSync().platform == 'android'){
await versionPromise //等待版本更新判断完成再往后执行
}
}
相关文章
发表评论
评论列表
- 这篇文章还没有收到评论,赶紧来抢沙发吧~