• 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 调用这个方法。

  • 相关阅读:
    第十一章 信号(一)- 概念
    问题记录与思考
    微信小程序自定义图片上传组件
    时间序列预测实战(十七)利用Prophet实现电力负荷长期预测(附代码+数据集+详细讲解)
    RapidMiner数据挖掘4 —— 决策树
    vue2全家桶-vuex
    Git简单使用介绍
    VIAVI唯亚威SmartPocket V2 OLS-35V2/-36V2 光学光功率计
    SpringBoot整合Mybatis
    C#西门子S7 协议通过偏移量的方式读写PLC DB块
  • 原文地址:https://blog.csdn.net/qq_33548747/article/details/137439773