uniapp实现应用内检测版本更新(Android直接下载/ios跳转app store)

背景:最近需要给app加一个可以检测到新版本并更新的功能,
之前没有考虑过这个问题,第一次尝试,特此记录一下。
我在这里使用到了uniapp上的更新插件,并在此插件基础上进行更改以适应我的项目。
插件链接:https://ext.dcloud.net.cn/plugin?id=2144,感谢大哥!

一、思考

想法:我这里的思路是app发送请求将app版本号发往后端服务器,与服务器上的apk版本号进行比对(也可以从服务器获取到最新版本的版本号返回到前端进行比对,这里就是仁者见仁了),如果有新版本会返回最新版本的url下载地址,在ios中则是跳到app store上进行下载。

二、操作

所需的操作:
要实现这个检测更新的功能,我们肯定是需要在应用启动的时候就运行,
所以我们就需要在App.vue中设置内容,然后把我们更新相关的操作可以
放在一个单独的js文件中;后端方面可以写一个接口文件里面写版本更新
相关的逻辑,还需要有一个/apk目录存放新版本安装包,以供安卓用户直
接从这里下载,实现应用内的下载安装。所以说,前端有两个文件,后端
有两个文件,我们下面就是围绕这几个文件描述。

2.1、App.vue

        这个文件中需要新增的代码就在下面

import checkappupdate from 'js_sdk/wonyes-checkappupdate/wonyes/checkappupdate.js'


checkappupdate.check({
			    title:"检测到有新版本!",
			    content:"请升级app到最新版本!",
			    canceltext:"暂不升级",
			    oktext:"立即升级",
			    api:'https://xxx.xxxx.xxx/api/Update/renew',
			    barbackground:"rgba(50,50,50,0.8)",//进度条背景色,默认灰色,可自定义rgba形式色值
			    barbackgroundactive:"rgba(32,165,58,1)"//进度条前景色色,默认绿色,可自定义rgba形式色值
			})

        注意:上面的导入时我在使用插件时的目录,如果这个js文件你要单独新建的话,记得把这里的路径修改一下,能访问到js文件就行。下面的这个check方法的使用需要放在app.vue的onLaunch里,在api那里xxx.xxxx.xxx是你的域名,这个URL实际上就是访问后端更新相关逻辑接口的URL,为了保持一致,你可以根据自己的项目接口的访问规则自行修改即可。 

2.2、checkappupdate.js

        这个文件就是前端我们发送请求,接受返回数据,判断是否更新,更新提示框,下载apk等存放相关内容的js文件,使用插件的话的也是直接就有的,自己创建的话也可以,我在下方放上我的代码以供参考,但是无论是使用插件还是使用我的,记得修改一些内容已适配自己的逻辑需求。

function check(param = {}) {
	console.log("开始检查版本更新!");
	// 合并默认参数
	param = Object.assign({
		title: "检测到有新版本!",
		content: "请升级app到最新版本!",
		canceltext: "暂不升级",
		oktext: "立即升级",
		barbackground:"rgba(50,50,50,0.8)",
		barbackgroundactive:"rgba(32,165,58,1)"
	}, param)
	if (!param.api) {
		console.log("api有误!");
		return false;
	}
	
	plus.runtime.getProperty(plus.runtime.appid, (widgetInfo) => {
		// console.log(widgetInfo)
		let platform = plus.os.name.toLocaleLowerCase()
		uni.reque
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值