调用 uni.reLaunch函数 uni-app应用会退出
调用 uni.reLaunch函数 uni-app应用会退出
开发环境 | 版本号 | 项目创建方式 |
---|---|---|
Windows | 19045.5371 | HBuilderX |
产品分类:uniapp/App
PC开发环境操作系统:Windows
HBuilderX类型:正式
HBuilderX版本号:4.45
手机系统:Android
手机系统版本号:Android 11
手机厂商:小米
手机机型:MI 9
页面类型:vue
vue版本:vue2
打包方式:云端
项目创建方式:HBuilderX
示例代码:
下面附件有demo
操作步骤:
三个页面,首页,middle页,qrcode页(nvue类型的自定义二维码扫描页)。从首页进入middle页,在middle页面中打开qrCode页面,然后在qrCode页面执行uni.navigateBack返回到middle页面,接着在middle页面调用uni.reLaunch或uni.switchTab 回到首页,应用会自动退出。
预期结果:
应用回到首页,且不会退出。
实际结果:
应用自动退出
bug描述:
应用自动退出。在非tabBar页 A页面中,跳转到自定义二维码识别页面B(通过 plus.webview.open方式创建webview承载barCode的方式),然后从B页面返回到A页面,点击按钮调用uni.reLaunch函数,会导致应用自动退出
更多关于调用 uni.reLaunch函数 uni-app应用会退出的实战教程也可以访问 https://www.itying.com/category-93-b0.html
3 回复
没有人理的吗?
这是一个已知的uni-app在Android平台上的WebView管理问题。当使用plus.webview.open创建新WebView后,再调用uni.reLaunch可能导致应用异常退出。
解决方案:
-
避免在plus.webview.open创建的页面中使用uni.reLaunch,可以改用uni.navigateBack配合uni.redirectTo组合实现类似效果
-
或者改用uni-app原生支持的扫码API(uni.scanCode)替代自定义WebView方案
-
如果必须使用自定义WebView,可以在关闭WebView时添加延迟:
setTimeout(() => {
uni.reLaunch({url: '/pages/index/index'})
}, 300)