绿满眶商城微信小程序-uniapp
编辑 | blame | 历史 | 原始文档

APP版本更新、强制更新、漂亮的更新界面、IOS更新(跳转IOS store)、wgt更新

QQ交流群(学习干货多多) 607391225

QQ交流群

点击跳转-插件示例

点击跳转-5年的web前端开源的uni-app快速开发模板-下载看文档

常见问题

1.安卓apk下载完成后没有更新APP?

答:问题是因为没有添加APP安装应用的权限,解决方法在manifest.json文件里面APP模块权限配置Android打包权限配置勾选以下权限
<uses-permission android:name=\"android.permission.INSTALL_PACKAGES\"/> <uses-permission android:name=\"android.permission.REQUEST_INSTALL_PACKAGES\"/>
若还有问题请看安装apk无法执行的解决方案

2.APP更新后版本号没变,还是之前的版本号?

答:可能是更新的安装包没有升级版本号,manifest.json文件里面基本设置应用版本号应用版本名称需要升高

3.APP更新后没有覆盖之前的APP?

答:可能是更新的安装包包名和APP的包名不一样

第一步配置APP更新接口

APPUpdate.js里面getServerNo函数方法配置更新接口
let httpData = { version:version }; if (platform == "android") { httpData.type = 1101; } else { httpData.type = 1102; } /* 接口入参说明 * version: 应用当前版本号(已自动获取) * type:平台(1101是安卓,1102是IOS) */ // 可以用自己项目的请求方法 $http.get("api/kemean/aid/app_version", httpData).then(res => { /*接口出参说明 (res数据说明) * | 参数名称 | 一定返回 | 类型 | 描述 * | -------------|--------- | --------- | ------------- | * | versionCode | y | int | 版本号 | * | versionName | y | String | 版本名称 | * | versionInfo | y | String | 版本信息 \n 换行(例如:1.修改了bug1 \n 2.修改了bug2 \n 3.修改了bug3) | * | forceUpdate | y | boolean | 是否强制更新 | * | downloadUrl | y | String | 版本下载链接 `IOS安装包更新请放跳转store应用商店链接,安卓apk和wgt文件放文件下载链接` | */ // 只要callback上面的数据就ok(返回数据就表示接口允许更新) // 示例返回数据 callback && callback({ versionCode: 101, versionName: "1.0.1", versionInfo: "1.修改了bug1 \n 2.修改了bug2 \n 3.修改了bug3", forceUpdate: false, downloadUrl: "http://www.xxx.com/download/123", }); });

第二步 使用方法

// App.vue页面

// #ifdef APP-PLUS
import APPUpdate from "@/plugins/APPUpdate";
// #endif

onLaunch: function(e) {
	// #ifdef APP-PLUS
	APPUpdate();
	// #endif
}

第三步 添加APP安装应用的权限

manifest.json文件里面APP模块权限配置Android打包权限配置勾选以下权限
<uses-permission android:name=\"android.permission.INSTALL_PACKAGES\"/> <uses-permission android:name=\"android.permission.REQUEST_INSTALL_PACKAGES\"/>

修改弹窗的主题色或弹窗图标

APPUpdate.js里面上面$mainColor常量中定义主题颜色,$iconUrl常量中定义图标地址

检查APP是否有新版本(一般在设置页面使用)

// #ifdef APP-PLUS
import APPUpdate, { getCurrentNo } from "@/plugins/APPUpdate";
// #endif
export default {
	data() {
		return {
			version: "" // 版本号
		};
	},
	//第一次加载
	onLoad(e) {
		// #ifdef APP-PLUS
		getCurrentNo(res => {
			// 进页面获取当前APP版本号(用于页面显示)
			this.version = res.version;
		});
		// #endif
	},
	//方法
	methods: {
		// 检查APP是否有新版本
		onAPPUpdate() {
			// true 没有新版本的时候有提示,默认:false
			APPUpdate(true);
		}
	}
}