React Native 在 Swift 中将事件发送到 JavaScript

2024-01-02

如何在 Swift 中将事件发送到 JavaScript?

有 Objc 代码示例如何将事件发送到 JavaScript,但我需要快速执行?

#import "RCTBridge.h"
#import "RCTEventDispatcher.h"

@implementation CalendarManager

@synthesize bridge = _bridge;

- (void)calendarEventReminderReceived:(NSNotification *)notification
{
  NSString *eventName = notification.userInfo[@"name"];
  [self.bridge.eventDispatcher sendAppEventWithName:@"EventReminder"
                                               body:@{@"name": eventName}];
}

@end

我只是想自己解决这个问题。这实际上非常简单。我是这样做的:

事件测试.m

#import "RCTBridgeModule.h"

@interface RCT_EXTERN_MODULE(EventTests, NSObject)

RCT_EXTERN_METHOD( testEvent:(NSString *)eventName )

@end

事件测试.Swift

import UIKit

@objc( EventTests )
class EventTests: NSObject {
    // Swift doesn't have synthesize - just define the variable
    var bridge: RCTBridge!

    @objc func testEvent( eventName: String ) {
        self.bridge.eventDispatcher.sendAppEventWithName( eventName, body: "Woot!" )
    }
}

MyModule.js

var React      = require( 'react-native' );
var EventTests = require( 'NativeModules' ).EventTests;

var {
    Component,
    NativeAppEventEmitter
} = React;

var testEventName = 'test';

class MyModule extends Component {

    constructor( options ) {
        super( options );

        // Register for our test event
        NativeAppEventEmitter.addListener( testEventName, ( body ) => {
            console.log( body );
        });

        // Call objective c function, which will emit our test event
        EventTests.testEvent( testEventName );
    }
}

module.exports = MyModule;

还要确保在桥接标头中包含一些导入:

#import "RCTBridge.h"
#import "RCTEventDispatcher.h"
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

React Native 在 Swift 中将事件发送到 JavaScript 的相关文章

  • 公式无效:/usr/local/Homebrew/Library/Taps/facebook/homebrew-fb/buck.rb

    我运行了brew 命令来安装Facebook homebrew tap 我有一个 M1 Apple Silicon 芯片组 并使用 Rosetta 下的终端来执行 brew 命令 brew tap facebook fb 我收到错误消息 g
  • 重新定位时 Mapbox 默认的 compassView 会给出奇怪的结果

    我遇到一种情况 必须将地图框罗盘视图重新定位到不同的位置 当我以其他点作为其 compassView 轴旋转地图时 compassView 现在正在旋转 并给了我一个奇怪的结果 附截图 黑色mapBox默认罗盘图标是旋转的 参考截图 这是
  • 键盘打开 React Native 时出现双击按钮问题

    我知道已经有很多关于这个主题的疑问 我已经尝试了每一步 但仍然无法解决问题 这是代码 render const sContainer sSearchBar styles if this props InviteState objectFor
  • 从钥匙串保存和加载 |斯威夫特[重复]

    这个问题在这里已经有答案了 如何简单地将字符串存储在钥匙串中并在需要时加载 有几种SO解决方案 主要参考Git repo 但我需要最新 Swift 上最小和最简单的解决方案 当然 我不想添加 git 框架来简单地在我的项目中存储密码 有类似
  • 可以转换为 Swift 5

    我在 Xcode 10 2 中收到此警告 可以转换为 Swift 5 当我单击此错误时 它会打开此窗口 当我们点击Next会发生什么 swift 的当前版本是 swift5 仅在 Xcode 10 2 中受支持 而您在 Xcode 10 2
  • iOS swift 应用程序启动时出现黑屏

    我有个问题 当我启动我的应用程序时 会看到黑屏几秒钟 然后出现启动屏幕 我的启动画面不是默认的 我使用了视图控制器 因为我的启动画面有一个动画 我搜索了一个解决方案 我得到了这个 在我的闪屏加载 iPhone 之前出现黑屏 https st
  • 如何从子 UICollectionview 内部获取 UITableView 的一部分

    我有一个UITableView with a UICollectionView在其每一行中 如下图所示 source https ashfurrow com blog putting a uicollectionview in a uita
  • 当我启动项目时没有 viewcontroller.swift 文件 [重复]

    这个问题在这里已经有答案了 我尝试启动该项目并使用视图控制器 但我没有看到它 仅appdelegate和scenedelegate和contentview 下面的代码应该添加到视图控制器中 但我不知道添加到哪里 它不断给我一条错误消息 指出
  • Braintree DropIn + Apple Pay,未出现 Apple Pay 项目

    我成功调用DropIn来自 Braintree SDK 的视图 这BTDropInRequest设置应显示三项 PayPal 信用卡 苹果支付 但由于某种原因在DropIn视图仅呈现两个项目而不是三个 PayPal 信用卡 我做错了什么 准
  • 错误:“Int”无法转换为“@lvalue Float”

    给定以下函数 func greatestCommonDenominator first Int second Int gt Int return second 0 first greatestCommonDenominator second
  • 搜索TableView无法选择行

    在搜索 tableView 时 每次我尝试选择一行时 它都会返回到未搜索的 tableView 我缺少什么 当不过滤表格时 segue 工作得很好 当搜索栏被激活时 选择行的能力就会消失 import UIKit import Founda
  • SwiftUI NavigationView 看不到图像

    我有一个代码并制作 NavigationLink 按钮 我编写文本和图像 但我的图像看不到 请帮助我 VStack Image Coachs resizable aspectRatio contentMode fill frame widt
  • Swift 3 '[UIApplicationLaunchOptionsKey:任意]?'无法转换为 '[String : NSString]'

    我有一个 TVOS 应用程序已从 Swift 2 转换为 Swift 3 但出现以下错误 我不确定如何让它安静下来 UIApplicationLaunchOptionsKey 任意 无法转换为 String NSString 它出现在这段代
  • Swift 中的弹出视图

    我有一个弹出视图 没有选项卡栏 它弹出到带有选项卡栏的视图控制器 在带有选项卡栏的视图控制器中 我设置了一个单击按钮 以便弹出视图控制器 IBAction func PopUpClicked sender UIButton gt Void
  • 在 Swift 中将 Int 转换为 UInt32

    我正在制作一个 Tcp 客户端 因此使用CFStreamCreatePairWithSocketToHost它期望第二个参数为 UInt32 这是我正在尝试做的事情的示例 func initNetwork IP String Port In
  • 在两个可拖动的 Flatlist 之间拖放 - React Native

    我正在努力为我的 React Native 应用程序创建一个要求 其中我有一个空白的保管箱 在放置平面列表项目时 它应该转换为可拖动的平面列表 和一个可拖动的平面列表 我必须从其中拖放到空白保管箱 反之亦然 两个平面列表中的项目应该有一个单
  • iOS 内存警告

    我正在尝试使用从 Parse 数据库下载的图像填充集合视图 但我收到内存警告 然后偶尔崩溃 有谁知道其他应用程序如何设法呈现这么多图像而不崩溃 有人可以告诉我如何优化我已有的东西吗 这是所有相关代码 https gist github co
  • Swift -boundingBox 导致 EXC_BAD_ACCESS (代码 = 1)

    我正在使用 SceneKit 来显示文本节点 这是我的代码 foo swift extension SCNNode func getNodeSize gt width Float height Float let min max bound
  • swift 中的负数模

    负数模如何在 swift 中工作 当我执行 1 3 时 它给出 1 但余数是 2 其中有什么问题 雨燕余数运算符 计算余数 整数除法 a b a a b b where 是截断整数除法 在你的情况下 1 3 1 1 3 3 1 0 3 1
  • 如何在 EKRecurrenceRule 中设置一周中某一天的数组?

    我想在用户选择的特定日期每周添加事件 可以是一个或多个 也可以是一整天 我将用户选择的日期值存储在模型类变量中 但是 当我添加事件并选择日期时 假设今天是星期一 我选择星期二和星期三并保存 然后我查看周一和周三添加的 iPhone 日历 我

随机推荐

  • eof() 返回什么?

    这是代码 string fname home jack example csv ifstream csvin fname c str if csvin eof do something 我的问题是 什么情况下eof 返回真 我有以下选择 文
  • 为什么在 affine2d 中使用转置矩阵

    根据http nl mathworks com help images ref affine2d class html http nl mathworks com help images ref affine2d class html Ma
  • 计算两个地理点的距离(以公里为单位)c#

    我想计算两个地理点的距离 这些点以经度和纬度给出 坐标是 点 1 36 578581 118 291994 点 2 36 23998 116 83171 这是一个比较结果的网站 http www movable type co uk scr
  • 如何在不终止docker容器的情况下重新启动apache2?

    我使用作为基础php docker 容器 https hub docker com php 带有标签 php 5 6 apache 当我尝试重新启动容器内的 apache2 时 容器停止 root phalconapp var www ht
  • 创建数组的快捷方式?

    在 VB NET 中 我创建数组如下 Dim myArray New ArrayList 但是有没有一种方法可以创建包含元素的数组而无需创建变量呢 在 Ruby 中 还有很长的路要走 array Array new 简单的 不变的方式就是
  • ASP.Net MVC3:将 .js 文件放在 View 而不是 Scripts 文件夹附近

    我们想从 Razor 视图中分离出 javascript 以便我们可以测试 我们可以将 js 文件定位在它们对应的视图附近 而不是放在 Scripts 文件夹中吗 例如 我们希望在解决方案资源管理器中看到这一点 MyMvcProject V
  • Java - 使用河豚加密时丢失最终字符

    我正在使用一些 java 代码 使用 Blowfish 加密文本文件的内容 当我将加密文件转换回来 即解密 时 字符串末尾缺少一个字符 有什么想法吗 我对 Java 很陌生 已经摆弄了几个小时但没有运气 文件 war and peace t
  • 扩展 JFrame 总是一个坏主意吗? [复制]

    这个问题在这里已经有答案了 开发 Java Swing GUI 时 扩展 JFrame 总是一个坏主意吗 那么 JPanel 或其他 JComponent 又如何呢 另外 是什么让它变得不好呢 通常 如果您需要自定义 Swing 组件 则仅
  • Flask-mongoengine 中的聚合

    我只是盯着 MongoDB 我正在盯着一个带有 Flask mongoengine 的应用程序 我想聚合一些文档 我正在使用 Flask mongoengine 并在尝试时 class MyDocumentModel db Document
  • GKE Ingress 显示后端服务不健康

    我有一个 GKE 集群 实例组中有 4 个节点 我部署了 Ingress 和几个 Pod 每个 Pod 仅 1 个副本 因此它们仅位于 1 个节点上 我在 Google 控制台 Ingress 详细信息页面 上注意到 尽管正在运行的 pod
  • 如何让 jQuery 自动完成在字段焦点上弹出? [复制]

    这个问题在这里已经有答案了 可能的重复 jQuery 自动完成 UI 我希望它能够在焦点上开始搜索 而无需用户输入任何内容 https stackoverflow com questions 4479598 jquery autocompl
  • 计数陷阱

    考虑计算结构不同的数量的问题二叉搜索树 http en wikipedia org wiki Binary search tree 给定 N 找到包含值 1 N 的结构不同的二叉搜索树的数量 给出一个解决这个问题的算法非常容易 修复根中每个
  • 如何按键对 ng-options 中的数组进行排序?

    有这样一个数组 month Array 13 0 M 1 January 2 February 3 March 4 April 5 May 6 June 7 July 8 August 9 September 10 October 11 N
  • 如何在Cakephp 3.0中读写Session

    我是蛋糕3 0的新手 我已阅读有关的文档http book cakephp org 3 0 en development sessions html http book cakephp org 3 0 en development sess
  • 了解批处理文件中的 start、2>nul、cmd 和其他符号

    从这个话题跟进on here https stackoverflow com a 19596432 2896127 我试图从建议的答案中了解 幕后 发生的事情 我不明白 2 gt nul 或 1 gt nul 应该做什么 我试图破译开始 b
  • MongoDB:聚合框架:字段之间的$match

    我有一个包含两个文档的测试集合 gt db test find pretty id ObjectId 510114b46c1a3a0f6e5dd7aa a 1 b 2 id ObjectId 510114c86c1a3a0f6e5dd7ab
  • 在 Django 1.9 中保存时将用户添加到组

    你好 我使用的是 Django 1 9 尝试在创建或保存时将用户添加到组中 使用 user groups 或 groups user set add 不起作用 请与下面的保存前和保存后混合搭配 这些答案对我不起作用 所以这不是一个骗局 在
  • ngFor youtube 链接与 Angular2 中的 Domsanitizer

    我的模拟内存数据库中有 youtube 链接 我想 ngFor 这些来自 youtube 的视频 let videos any videoURL ZOd5LI4 PcM videoURL d6xQTf8M51A videoURL BIfvI
  • Spring.Net IoC 和魔术字符串

    我一直在考虑 IApplicationContext GetObject string name 方法 它似乎相当依赖魔术字符串从应用程序上下文中获取对象 与其他容器一样结构图 http structuremap sourceforge n
  • React Native 在 Swift 中将事件发送到 JavaScript

    如何在 Swift 中将事件发送到 JavaScript 有 Objc 代码示例如何将事件发送到 JavaScript 但我需要快速执行 import RCTBridge h import RCTEventDispatcher h impl