调用 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 回复

在 HUAWEI nova 2s 设备上,从首页进入middle页,middle页进入qrCode页面,然后从qrCode页面返回middle页面,再从middle页点击进入qrCode页面,接着从qrCode页面返回middle页,最后在middle页调用uni.reLaunch、uni.switchTab、uni.navigateBack函数,应用也会自动退出。

更多关于调用 uni.reLaunch函数 uni-app应用会退出的实战教程也可以访问 https://www.itying.com/category-93-b0.html


没有人理的吗?

这是一个已知的uni-app在Android平台上的WebView管理问题。当使用plus.webview.open创建新WebView后,再调用uni.reLaunch可能导致应用异常退出。

解决方案:

  1. 避免在plus.webview.open创建的页面中使用uni.reLaunch,可以改用uni.navigateBack配合uni.redirectTo组合实现类似效果

  2. 或者改用uni-app原生支持的扫码API(uni.scanCode)替代自定义WebView方案

  3. 如果必须使用自定义WebView,可以在关闭WebView时添加延迟:

setTimeout(() => {
  uni.reLaunch({url: '/pages/index/index'})
}, 300)
回到顶部