原生模块跳转到rn模块,因为未开启npm报红,可是此时无法退回到原生模块:按返回键无效(真机调试的),这是什么原因?

来源:15-2 React Native 混合开发实战(Android篇)-2

追光0

2018-10-16

rn跟现有项目混合开发,为开启npm的前提下,然后在AS中运行安卓项目,进入rn模块,报红是意料之内,可是按返回键无法退回到原生模块了,一直停留在空白页面了。请问这是怎么回事?查看 onBackPressed,最终会走这个方法。麻烦老师看一下这个问题。
图片描述

写回答

1回答

CrazyCodeBoy

2018-10-20

第一步:设置JS ExceptionHandler;

mReactInstanceManager = ReactInstanceManager.builder()
    ...
    +.setNativeModuleCallExceptionHandler()

第二步:在捕捉到错误的时候,在onBackPressed中对返回键做特殊处理也就是直接调用super.onBackPressed()

@Override
public void onBackPressed() {
    if (mReactInstanceManager != null) {
        mReactInstanceManager.onBackPressed();
    } else {
        super.onBackPressed();
    }
}


0
1
追光0
非常感谢!
2018-11-08
共1条回复

React Native技术精讲与高质量上线App开发

一个真实的上线项目,一次完整的开发过程,全面掌握React Native技术

1577 学习 · 727 问题

查看课程