美文网首页
react native Android back键点击处理

react native Android back键点击处理

作者: 米奇小林 | 来源:发表于2018-04-11 00:02 被阅读18次

项目中 直接将ReactRootView 当做一个模块添加到activity,当RN页面做跳转的时候,如果点击RN页面返回角标返回都是正常的(ios果断是无压力的,没有back键),Android机器 back直接将整个activity弹栈了。这显然是不行的,最后在react 中文网找到了方法。

1.将你的 activity implements DefaultHardwareBackBtnHandler
主要是重写

 @Override
    public void invokeDefaultOnBackPressed() {
        super.onBackPressed();
    }

2.然后把后退按钮事件传递给React Native(核心)

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

3.将activity的生命周期回调传递给ReactInstanceManager

    @Override
    protected void onPause() {
        super.onPause();

        if (mReactInstanceManager != null) {
            mReactInstanceManager.onHostPause(this);
        }
    }

    @Override
    protected void onResume() {
        super.onResume();

        if (mReactInstanceManager != null) {
            mReactInstanceManager.onHostResume(this, this);
        }
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();

        if (mReactInstanceManager != null) {
            mReactInstanceManager.onHostDestroy();
        }
    }

最后大功告成,点击返回键时 和原生操作流程一致!!

相关文章

网友评论

      本文标题:react native Android back键点击处理

      本文链接:https://www.haomeiwen.com/subject/wpmohftx.html