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 的模块:

java 复制代码
// 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();
    }
}

然后在 JavaScript 中这样使用:

javascript 复制代码
import { NativeModules } from 'react-native';

NativeModules.ToastExample.show('Hello, World!', NativeModules.ToastExample.LENGTH_LONG);

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

相关推荐
JMchen1231 分钟前
现代Android图像处理管道:从CameraX到OpenGL的60fps实时滤镜架构
android·图像处理·架构·kotlin·android studio·opengl·camerax
电商API_1800790524710 分钟前
第三方淘宝商品详情 API 全维度调用指南:从技术对接到生产落地
java·大数据·前端·数据库·人工智能·网络爬虫
一点程序24 分钟前
基于SpringBoot的选课调查系统
java·spring boot·后端·选课调查系统
C雨后彩虹26 分钟前
计算疫情扩散时间
java·数据结构·算法·华为·面试
2601_9498095930 分钟前
flutter_for_openharmony家庭相册app实战+我的Tab实现
java·javascript·flutter
快点好好学习吧1 小时前
phpize 依赖 php-config 获取 PHP 信息的庖丁解牛
android·开发语言·php
是誰萆微了承諾1 小时前
php 对接deepseek
android·开发语言·php
vx_BS813301 小时前
【直接可用源码免费送】计算机毕业设计精选项目03574基于Python的网上商城管理系统设计与实现:Java/PHP/Python/C#小程序、单片机、成品+文档源码支持定制
java·python·课程设计
2601_949868361 小时前
Flutter for OpenHarmony 电子合同签署App实战 - 已签合同实现
java·开发语言·flutter
摘星编程1 小时前
React Native + OpenHarmony:UniversalLink通用链接
javascript·react native·react.js