HarmonyOS Rn容器内返回处理不合理,会退出APP
Rnoh版本:4.1.0.400
目前使用此rn版本,Rnoh的 DeviceEventManagerTurboModule 类的 invokeDefaultBackPressHandler 是直接杀死APP,如果把返回事件交给RN处理,就会直接退出APP
需要能够不直接杀死app,支持自定义返回逻辑,且不处理应该也是走onBackPress流程,而不是直接杀死APP
HarmonyOS
赞
收藏 0
回答 2
待解决
相关问题
webview点击导航返回按钮时,偶现app自动退出
1851浏览 • 1回复 待解决
HarmonyOS 退出app的方法
133浏览 • 1回复 待解决
HarmonyOS PushToken不合法
239浏览 • 1回复 待解决
在应用内退出了APP进程,但是在系统的任务栈中还存在,如使APP退出后同时清除系统的任务栈
1915浏览 • 1回复 待解决
OpenHarmony 退出程序是app.terminate()吗,怎么没有办法退出App?
4217浏览 • 1回复 待解决
HarmonyOS 页面内组件全屏怎么处理?
281浏览 • 1回复 待解决
HarmonyOS 有没有方法直接退出APP
415浏览 • 1回复 待解决
HarmonyOS 按下返回键时,如何禁止CustomDialog退出
552浏览 • 1回复 待解决
Docker 容器异常退出,code 139 是什么原因?
4629浏览 • 1回复 待解决
docker容器内的MySQL、Redis无法连接
3313浏览 • 1回复 待解决
HarmonyOS 用户返回,是退出系统而不是返回上一页面
313浏览 • 2回复 待解决
HarmonyOS app内如何禁用深色模式?
91浏览 • 1回复 待解决
HarmonyOS 如何实现APP内全局弹窗
321浏览 • 1回复 待解决
HarmonyOS 自定义Dialog中,进行系统返回操作时,会先关闭Dialog,再次点击才会退出当前页面
168浏览 • 1回复 待解决
dockerfile 设置容器内挂载点怎么实现啊?
4278浏览 • 1回复 待解决
HarmonyOS RN跳转其他APP页面,推荐开发方案是什么?
237浏览 • 1回复 待解决
HarmonyOS 如何监听返回键事件,实现连按两次返回,提示退出应用
664浏览 • 1回复 待解决
HarmonyOS 测试设备调用应用内支付返回异常
261浏览 • 1回复 待解决
HarmonyOS RN相关问题
327浏览 • 1回复 待解决
android12 app自启动+防止退出
3740浏览 • 0回复 待解决
如何获取应用信息以及彻底退出APP
275浏览 • 1回复 待解决
HarmonyOS文档中说taskpool中的任务超过3分钟会强制退出,强制退出时有回调吗
255浏览 • 1回复 待解决
有谁知道如何强制退出app?
302浏览 • 1回复 待解决
如何获取应用信息以及彻底退出APP
375浏览 • 1回复 待解决
获取Scroll容器组件内指定组件的坐标值
733浏览 • 1回复 待解决
在 HarmonyOS 上使用 React Native 时,如果发现
DeviceEventManagerTurboModule
类的 invokeDefaultBackPressHandler
方法直接杀死应用,这显然不是期望的行为。你可以通过自定义返回按键处理逻辑,来避免这种情况,并确保返回事件按照预期流程执行。### 方案概述
你可以通过以下几种方法来解决这个问题:
invokeDefaultBackPressHandler
实现:在原生代码中自定义返回按键事件的处理逻辑,以替换默认的处理方法。ReactInstanceManager
或相关类的实现:确保返回按键事件不会直接导致应用退出,而是触发合适的生命周期方法。### 方法 1:拦截并处理返回按键事件(JS层)
在 React Native 中,你可以使用
BackHandler
来监听和处理返回按键事件。#### 示例代码:
### 方法 2:自定义
invokeDefaultBackPressHandler
实现(原生层)如果你有控制原生代码的权限,可以自定义返回按键事件的处理逻辑。
#### 修改
MainActivity.java
或其他 Activity 文件:### 方法 3:确保 React Native 的生命周期与 HarmonyOS 一致
在某些情况下,你可能需要确保 React Native 生命周期方法正确映射到 HarmonyOS 生命周期方法上。
#### 确保
ReactInstanceManager
正确处理返回事件:通常你应该确保你的
ReactActivity
或 Ability
类能够正确地与 ReactInstanceManager
通信,并且当返回按键按下时,它会触发正确的生命周期方法而不是杀死应用。### 总结
通过以上三个方法,你可以有效地避免在 HarmonyOS 上
invokeDefaultBackPressHandler
导致应用直接退出的问题:BackHandler
在 JavaScript 层面拦截返回按键事件。invokeDefaultBackPressHandler
以实现自己的返回按键处理逻辑。这些方法应该能够帮助你在 HarmonyOS 上更好地管理 React Native 应用的返回按键处理。如果有更多问题或需要进一步的帮助,请随时提问!
可以参考下面这种方式实现