在Swift中将本机发送事件发送到JavaScript

如何在 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"

相关文章

软件简介:蓝湖辅助工具,减少移动端开发中控件属性的复制和粘...
现实生活中,我们听到的声音都是时间连续的,我们称为这种信...
前言最近在B站上看到一个漂亮的仙女姐姐跳舞视频,循环看了亿...
【Android App】实战项目之仿抖音的短视频分享App(附源码和...
前言这一篇博客应该是我花时间最多的一次了,从2022年1月底至...
因为我既对接过session、cookie,也对接过JWT,今年因为工作...