中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Reactnative-iOS回調Javascript的方法

發布時間:2020-09-25 13:03:03 來源:腳本之家 閱讀:182 作者:FlyElephant 欄目:移動開發

Reactnative可以調用原生模塊,原生模塊也可以給JavaScript發送事件通知.最好的方法是繼承RCTEventEmitter.自定義繼承自PushEventEmitter的子類RCTEventEmitter.

#import <Foundation/Foundation.h>
#import <React/RCTBridgeModule.h>
#import <React/RCTEventEmitter.h>

@interface PushEventEmitter : RCTEventEmitter <RCTBridgeModule>

- (void)addEventReminderReceived:(NSNotification *)notification;

@end

實現supportedEvents方法

#import "PushEventEmitter.h"

@implementation PushEventEmitter

+ (id)allocWithZone:(NSZone *)zone {
  static PushEventEmitter *sharedInstance = nil;
  static dispatch_once_t onceToken;
  dispatch_once(&onceToken, ^{
    sharedInstance = [super allocWithZone:zone];
  });
  return sharedInstance;
}

RCT_EXPORT_MODULE();

- (NSArray<NSString *> *)supportedEvents
{
  return @[@"EventReminder"];
}

- (void)addEventReminderReceived:(NSNotification *)notification {
  [self sendEventWithName:@"EventReminder" body:@{@"name": @"FlyElephant"}];
}

@end

React native 設置:

import {
  NativeModules,
  NativeEventEmitter,
} from 'react-native';

const PushEventEmitter = NativeModules.PushEventEmitter;

const emitterManager = new NativeEventEmitter(PushEventEmitter);

訂閱通知和移除通知:

  componentDidMount() {
    subscription = emitterManager.addListener(
      'EventReminder',
      (reminder) => console.log('JavaScript接收到通知:'+reminder.name)
    );

  }
  componentWillUnmount(){
    subscription.remove();// 移除通知
  }

調用測試:

PushEventEmitter *eventEmitter = [PushEventEmitter allocWithZone:nil];

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

兴仁县| 遂川县| 富阳市| 彝良县| 都安| 西吉县| 蕉岭县| 廉江市| 莆田市| 伊宁市| 垫江县| 扎兰屯市| 玛纳斯县| 福安市| 夹江县| 仙游县| 灌阳县| 万荣县| 兴化市| 太康县| 乌苏市| 永胜县| 宁安市| 上高县| 上蔡县| 冕宁县| 会理县| 榕江县| 九龙县| 合作市| 成安县| 崇义县| 那坡县| 仁怀市| 孝昌县| 秦皇岛市| 会昌县| 浑源县| 北碚区| 广宗县| 建始县|