在Swift中将本机发送事件发送到JavaScript
发布时间:2020-12-14 05:40:21 所属栏目:百科 来源:网络整理
导读:如何在 Swift中将事件发送到 JavaScript? 有一些Objc代码示例如何将事件发送到JavaScript,但我需要在swift中做什么? #import "RCTBridge.h"#import "RCTEventDispatcher.h"@implementation CalendarManager@synthesize bridge = _bridge;- (void)calendarE
如何在
Swift中将事件发送到
JavaScript?
有一些Objc代码示例如何将事件发送到JavaScript,但我需要在swift中做什么? #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
我只是想弄清楚自己.这实际上非常简单.继承人我是怎么做到的:
EventTests.m #import "RCTBridgeModule.h" @interface RCT_EXTERN_MODULE(EventTests,NSObject) RCT_EXTERN_METHOD( testEvent:(NSString *)eventName ) @end EventTests.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" (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |