• React Native调用Android的原生功能


    React Native 通过 JavaScript 接口与原生代码通信,这是通过名为 Bridge 的机制实现的。Bridge 负责在 JavaScript 和原生端之间建立通信桥梁。

    以下是调用 Android 原生功能的基本步骤:

    在 JavaScript 中,使用 React Native 提供的模块创建一个接口。
    这个接口会被编译成 Java 或 Kotlin 代码,并在 Android 项目的 android/app/src/main/java/<你的包名>/ 目录下的相应 Module 中实现。
    实现原生功能的具体代码。
    通过 Bridge 将原生功能暴露给 JavaScript。
    例如,如果你想要调用 Android 的 Toast 功能,你可以创建一个名为 ToastExample 的模块:

    // ToastExample.java
    
    package com.yourpackage;
    
    import android.widget.Toast;
    import android.content.Context;
    
    import com.facebook.react.bridge.ReactApplicationContext;
    import com.facebook.react.bridge.ReactContextBaseJavaModule;
    import com.facebook.react.bridge.ReactMethod;
    import com.facebook.react.module.annotations.ReactModule;
    
    @ReactModule(name = ToastExampleModule)
    public class ToastExample extends ReactContextBaseJavaModule {
    
        ToastExample(ReactApplicationContext context) {
            super(context);
        }
    
        @Override
        public String getName() {
            return "ToastExample";
        }
    
        @ReactMethod
        public void show(String message, int duration) {
            Toast.makeText(getReactApplicationContext(), message, duration).show();
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29

    然后在 JavaScript 中这样使用:

    import { NativeModules } from 'react-native';
    
    NativeModules.ToastExample.show('Hello, World!', NativeModules.ToastExample.LENGTH_LONG);
    
    • 1
    • 2
    • 3

    这个例子中,我们创建了一个名为 ToastExample 的模块,并在其中定义了一个 show 方法,该方法通过调用 Android 的 Toast 功能来显示一条消息。然后在 JavaScript 中,我们通过 NativeModules.ToastExample.show 调用这个方法。

  • 相关阅读:
    element-plus中图片预览插件源码改动
    初探富文本之CRDT协同算法
    k8s基础知识扫盲及企业落地实践分享
    python 正则表达式(Regular Expression)基础学习笔记
    php练习06
    Redis存储结构之zskiplist
    【微服务部署】08-监控与告警
    自制操作系统日志——第二十四天
    ES6——类以及模块化管理
    Elasticsearch 聚合字段aggregate-metric-double
  • 原文地址:https://blog.csdn.net/qq_33548747/article/details/137439773