1. 什么是uniapp?
uniapp是一种基于Vue.js框架开发的跨平台应用开发框架,可以在iOS、Android、H5、以及各类小程序平台上运行。使用uniapp可以快速开发一份可用于多个平台的应用。
2. uniapp安卓不覆盖安装问题
在进行uniapp开发过程中,可能会遇到安装应用时提示“已安装,没有覆盖安装”的问题,尤其是在安卓平台上。这种问题的存在会损害用户体验,甚至会使用户误解为应用安装失败了。
2.1 问题原因
这是因为uniapp热更新机制的特性导致的。当我们在开发过程中成功发布了一个新版本的应用,在用户使用旧版本应用的同时系统自动检测到了有新版本的应用,便会自行下载安装。但是由于系统默认会在存放apk的路径下自动建立同名文件夹,导致下载的apk文件重名,这个时候只能保留旧版本的apk,无法覆盖安装新版本的apk,因此便会提示 “已安装,没有覆盖安装”。
2.2 解决方法
解决这个问题的方法其实很简单,只需要在config.xml配置文件中对热更新机制进行一些设置即可。
// Disable appleHotUpdate and/or androidHotUpdate if you don't want to use
"app-plus": {
"module": {
"appName": "APP_NAME",
"id": "APP_ID",
"version": "APP_VERSION",
"androidHotUpdate": true,
"androidUsingNewCode": true,
"aplus": {
"useJsonPatch": true,
"usePayloadMd5Check": true
}
}
}
其中,将androidHotUpdate的设置值改为false,即可禁用安卓热更新机制,这样就不会出现apk重名的问题,从而可以覆盖安装新版本的应用。同时,由于在安装成功之后会自动删除安装包,所以此问题不会对用户的存储空间产生负担。
3. 总结
在进行uniapp开发时,可能会遇到安装应用出现无法覆盖安装的问题,这主要是由于热更新机制的特性导致。通过在config.xml配置文件中禁用安卓热更新机制,即可解决这个问题。提升用户体验,为自己的应用增加附加值。