RN屏蔽Android返回键

RN屏蔽Android返回键

前言

Android在开发过程中由于种种原因需要取消屏蔽无力Back按钮,比如界面上显示自定义Dialog,按照Android原生的处理方式,点击Back键首先是使dialog消失,但在RN中,点击Back键会默认退出或者返回上一页。

导入BackHandler

导入BackHandler

import {
    BackHandler,
} from 'react-native';
定义监听到用户按Back键的处理函数

定义监听到用户按Back键的处理函数

 onBackAndroid() {
        
        if(this.props.navigation.state.params&&this.props.navigation.state.params.showDialog){//当dialog存在时,先消失dialog   然后返回true ,不执行系统默认操作
            this.props.navigation.setParams({
                showDialog:false
            })
            return true;
        }else{//返回false ,不执行系统默认操作
            return false;
        }
       
    }
利用BackHandler注册'hardwareBackPress'监听

利用BackHandler注册'hardwareBackPress'监听

 componentWillMount() {
        if (Platform.OS === 'android') {
            BackHandler.addEventListener('hardwareBackPress', this.onBackAndroid);
        }

    }
componentWillUnmount取消监听

componentWillUnmount取消监听,即页面取消挂载时取消监听

 componentWillUnmount() {
        if (Platform.OS === 'android') {
            BackHandler.removeEventListener('hardwareBackPress', this.onBackAndroid);
        }

    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
React Native 是一种流行的跨平台开发框架,它允许我们使用JavaScript编写移动应用程序。 在React Native中,我们可以通过创建自定义的 Activity 来加载RN(React Native)应用程序。 Activity 是Android开发中的一个重要概念,它代表一个用户界面的窗口。 在React Native中,我们可以使用现有的 BaseActivity 类来加载RN应用程序。 首先,我们需要在 Java 代码中创建一个继承 BaseActivity 的自定义 Activity 类。 在这个类中,我们需要执行几个步骤来加载RN应用程序。 首先,我们需要创建一个 ReactInstanceManager 对象并对其进行一些配置,例如设置JS主机、设置调试模式等。 然后,我们需要使用这个 ReactInstanceManager 对象创建一个 ReactRootView 对象。 接下来,我们可以调用 ReactRootView 的 startReactApplication() 方法来加载我们的RN应用程序。 这个方法需要两个参数:一个是我们的 RN 应用程序的模块名,另一个是传递给 RN 应用程序的一些初始属性。 最后,我们需要使用 setContentView() 方法将 ReactRootView 对象设置为 Activity 的内容视图,以便它可以显示在屏幕上。 需要注意的是,加载 RN 应用程序可能需要一些时间,因此我们可能需要显示一个加载指示器或者启动一个异步任务来加载 RN 应用程序。 这样,当 RN 应用程序加载完成后,我们就可以将其显示在 Activity 中了。 总结一下,通过创建一个继承 BaseActivity 的自定义 Activity 类,并在其中执行必要的步骤来配置和加载 RN 应用程序,我们可以将 RN 应用程序加载到 Android Activity 中。这样,我们就可以在 Android 平台上使用 React Native 来构建跨平台的移动应用程序了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值