HarmonyOS Rn容器内返回处理不合理,会退出APP
Rnoh版本:4.1.0.400
目前使用此rn版本,Rnoh的 DeviceEventManagerTurboModule 类的 invokeDefaultBackPressHandler 是直接杀死APP,如果把返回事件交给RN处理,就会直接退出APP
需要能够不直接杀死app,支持自定义返回逻辑,且不处理应该也是走onBackPress流程,而不是直接杀死APP
HarmonyOS
赞
收藏 0
回答 2
相关问题
星盾架构如何禁止不合理权限?与其他系统的安全机制有何差异?
267浏览 • 0回复 待解决
HarmonyOS RN onBackP ress() 返回处理问题
1121浏览 • 1回复 待解决
HarmonyOS flutter进入多级子页面侧滑返回会全部退出
862浏览 • 1回复 待解决
webview点击导航返回按钮时,偶现app自动退出
2913浏览 • 1回复 待解决
HarmonyOS Navigation作为应用视图根容器,最后一个子组件 pop无法退出页面,返回键可退出页面
820浏览 • 1回复 待解决
HarmonyOS 应用退出(用户返回退出,手动杀,系统杀)的时候,有明确会回调哪个函数吗?
940浏览 • 1回复 待解决
HarmonyOS RN 项目中页面返回事件的自定义处理
696浏览 • 1回复 待解决
HarmonyOS 如何彻底退出app
572浏览 • 1回复 待解决
HarmonyOS 如何主动退出app
502浏览 • 1回复 待解决
HarmonyOS 退出app的方法
2052浏览 • 1回复 待解决
HarmonyOS Rn 的 FabricView 如何判断是否容器节点?
599浏览 • 1回复 待解决
HarmonyOS 涉及到RN框架,是否使用API12较为合理
872浏览 • 1回复 待解决
HarmonyOS 使用Router.back会退出到桌面,物理返回键则是返回上一个界面 11:57:23
553浏览 • 1回复 待解决
HarmonyOS 退出APP用什么API
562浏览 • 1回复 待解决
在应用内退出了APP进程,但是在系统的任务栈中还存在,如使APP退出后同时清除系统的任务栈
2608浏览 • 1回复 待解决
OpenHarmony 退出程序是app.terminate()吗,怎么没有办法退出App?
5858浏览 • 1回复 待解决
HarmonyOS RN如何拦截返回事件
514浏览 • 1回复 待解决
Docker 容器异常退出,code 139 是什么原因?
6507浏览 • 1回复 待解决
HarmonyOS 退出app的代码是什么
640浏览 • 1回复 待解决
HarmonyOS app内通知栏
803浏览 • 1回复 待解决
HarmonyOS PushToken不合法
1005浏览 • 1回复 待解决
docker容器内的MySQL、Redis无法连接
4080浏览 • 1回复 待解决
HarmonyOS RN Bottom-tabs组件返回问题
813浏览 • 1回复 待解决
#鸿蒙通关秘籍#如果目标应用未安装,App Linking会怎么处理?
716浏览 • 1回复 待解决
HarmonyOS 有没有方法直接退出APP
1233浏览 • 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 应用的返回按键处理。如果有更多问题或需要进一步的帮助,请随时提问!
可以参考下面这种方式实现