uni-app 云打包APP的wgt升级后,使用plus.runtime.restart()重启应用卡死在启动页无响应(本地自定义基座无此问题)
uni-app 云打包APP的wgt升级后,使用plus.runtime.restart()重启应用卡死在启动页无响应(本地自定义基座无此问题)
开发环境 | 版本号 | 项目创建方式 |
---|---|---|
Mac | 14.2.1 (23C71) | HBuilderX |
产品分类:uniapp/App
PC开发环境操作系统:Mac
HBuilderX类型:正式
HBuilderX版本号:3.98
手机系统:Android
手机系统版本号:Android 11
手机厂商:小米
手机机型:小米10
页面类型:vue
vue版本:vue2
打包方式:云端
项目创建方式:HBuilderX
示例代码:
```javascript
let package_type = this.data.package_type;
let that = this
const downloadTask = uni.downloadFile({
url: this.data.edition_url,
success: res => {
if (res.statusCode === 200) {
plus.runtime.install(
res.tempFilePath,
{
force: true //true表示强制安装,不进行版本号的校验;false则需要版本号校验,
},
function() {
// console.log('success', success);
if (package_type == 1) {
plus.runtime.restart();
}
},
function(e) {
//提示部分wgt包无法安装的问题
that.data.edition_force = 0;
uni.showToast({
title:e.message,
icon:'none',
duration:2500
})
setTimeout(()=>{
uni.navigateBack()
},2000)
}
);
if (package_type == 0) {
// 解决安装app点击取消,更新还在的问题
this.data.edition_force = 0;
uni.navigateBack();
}
}
}
操作步骤: 云打包的APP的wgt升级,下载安装完后,使用plus.runtime.restart()重启app,卡死在启动页没有响应(本地自定义基座没有此问题)
预期结果: 云打包的APP的wgt升级,下载安装完后,使用plus.runtime.restart()重启app,不卡死在启动页
实际结果: 云打包的APP的wgt升级,下载安装完后,使用plus.runtime.restart()重启app,卡死在启动页没有响应(本地自定义基座没有此问题)
bug描述: 在云打包后,APP的wgt升级后,代码里使用plus.runtime.restart()重启,会卡死在启动页,没有响应。(本地使用自定义基座没有此问题)
- 是否跟我引用原生插件有关系
- 是否跟我对manifest.json文件的安卓里新增了这个sdk的配置有关系?targetSdkVersion:30
4 回复
不知道是否跟我引用原生插件有关系?
解决了吗兄弟
在 uni-app 中使用云打包生成的 APP 进行 wgt 升级后,调用 plus.runtime.restart()
重启应用时卡在启动页无响应的问题,可能与以下几个原因有关:
1. 资源文件未正确加载
- 原因:wgt 升级后,某些资源文件可能没有正确加载或更新,导致应用在启动时卡住。
- 解决方案:
- 确保 wgt 包中的资源文件完整且正确。
- 在升级后,检查是否有资源文件缺失或路径错误。
2. 升级逻辑问题
- 原因:升级逻辑可能存在问题,导致应用在重启时无法正确处理新版本。
- 解决方案:
- 检查升级逻辑,确保在重启前所有必要的初始化操作已经完成。
- 可以在
plus.runtime.restart()
前添加一些日志,检查是否有异常。
3. 启动页逻辑问题
- 原因:启动页的逻辑可能存在问题,导致应用在重启时无法正确跳转到主页面。
- 解决方案:
- 检查启动页的逻辑,确保在重启后能够正确跳转到主页面。
- 可以在启动页中添加一些日志,检查是否有异常。
4. 云打包与本地自定义基座差异
- 原因:云打包生成的 APP 与本地自定义基座可能存在一些差异,导致在云打包的 APP 中出现问题。
- 解决方案:
- 确保云打包的配置与本地自定义基座的配置一致。
- 检查云打包的日志,查看是否有异常信息。
5. 缓存问题
- 原因:应用在升级后可能使用了旧的缓存,导致重启时出现问题。
- 解决方案:
- 在升级后,清除应用的缓存,确保使用最新的资源文件。
6. 系统权限问题
- 原因:应用在重启时可能需要某些系统权限,但未正确获取。
- 解决方案:
- 检查应用的权限配置,确保在重启时能够正确获取所需的权限。
7. 调试与日志
- 解决方案:
- 在
plus.runtime.restart()
前后添加日志,检查是否有异常。 - 使用
console.log
或uni.showToast
输出调试信息,帮助定位问题。
- 在
8. 尝试其他重启方式
- 解决方案:
- 如果
plus.runtime.restart()
无法正常工作,可以尝试使用其他方式重启应用,例如:plus.runtime.quit(); setTimeout(function() { plus.runtime.launchApplication({action: 'your_app_scheme'}); }, 1000);
- 如果