uni-app 安卓APP在首页快速并多次点击物理返回键关闭应用 再次进入后无法跳转页面
uni-app 安卓APP在首页快速并多次点击物理返回键关闭应用 再次进入后无法跳转页面
操作步骤:
- 正常打开APP
- 在首页快速并多次点击物理返回按钮直至APP关闭
- 再次点击APP进入首页
- 无法跳转
预期结果:
关闭后再次打开正常使用
实际结果:
关闭后再次打开无法跳转
bug描述:
安卓APP在首页多次点击物理返回键关闭应用,再次进入后无法跳转页面,但是其他的js执行是正常的,比如定时器、弹框等
exception function:run raxApi, exception:JavaScript execute error!Uncaught TypeError: e.WeexPlus is not a constructor
图片
信息 | 描述 |
---|---|
产品分类 | uniapp/App |
PC开发环境 | Mac |
PC开发环境版本 | 10.15.5 |
HBuilderX类型 | 正式 |
HBuilderX版本 | 3.0.7 |
手机系统 | Android |
手机系统版本 | Android 11 |
手机厂商 | OPPO |
手机机型 | OPPO Find X2 |
页面类型 | nvue |
打包方式 | 云端 |
项目创建方式 | HBuilderX |
更多关于uni-app 安卓APP在首页快速并多次点击物理返回键关闭应用 再次进入后无法跳转页面的实战教程也可以访问 https://www.itying.com/category-93-b0.html
mumu模拟器也出现这个问题,界面操作十来次就闪白屏,调试都麻烦。。
更多关于uni-app 安卓APP在首页快速并多次点击物理返回键关闭应用 再次进入后无法跳转页面的实战教程也可以访问 https://www.itying.com/category-93-b0.html
屏蔽退出就行了,给你一个解决方案: if (uni.getSystemInfoSync().platform != “android”) return; let main = plus.android.runtimeMainActivity(); plus.runtime.quit = () => { main.moveTaskToBack(false); }; plus.nativeUI.toast = (res => { if (res == ‘再按一次退出应用’) { main.moveTaskToBack(false); return false; } else { uni.showToast({ title: res, icon: ‘none’ }); } });
回复 YXW: 用了这个方法虽然没有闪退,但是js停止运行, 发短信的倒计时也停止了,报错提示:
这个问题是由于快速多次点击返回键导致应用异常关闭,再次进入时WeexPlus模块初始化失败导致的。建议从以下几个方面排查和修复:
-
检查首页的onUnload生命周期函数,确保没有执行可能导致WeexPlus模块初始化失败的操作
-
在manifest.json中配置Android的返回键处理策略:
"app-plus": {
"android": {
"backToClose": "none" // 禁用返回键直接关闭应用
}
}
- 在首页添加自定义返回键处理逻辑:
onBackPress(options) {
if (options.from === 'backbutton') {
// 这里可以添加退出确认逻辑
return true; // 拦截返回键
}
return false;
}