React native 调用原生接口实现起来比较简单,自定义接口类PushManager,需要实现RCTBridgeModule协议,导入RCT_EXPORT_MODULE宏定义.
#import
#import
#import
@interface PushManager : NSObject<RCTBridgeModule>
@end
#import "PushManager.h"
@implementation PushManager
RCT_EXPORT_MODULE();
- (NSDictionary *)baseInfomation {
return @{ @"name": @"FlyElephant" };
}
RCT_EXPORT_METHOD(showMessage:(NSString *)message type:(NSString *)type)
{
RCTLogInfo(@"FlyElephant 本地调用 %@---%@---", message, type);
}
@end
React native导入本地原生模块:
import {
Text,
View,
TouchableHighlight,
NativeModules,
NativeEventEmitter,
} from 'react-native';
const PushManager = NativeModules.PushManager;
调用原生模块方法:
PushManager.showMessage("消息推送","local");
原生模块还支持回调函数的调用,iOS提供回调方法:
RCT_EXPORT_METHOD(blockCallbackEvent:(RCTResponseSenderBlock)callback)
{
NSArray *events=@[@"Callback ", @"Block ", @"FlyElephant"];
callback(@[[NSNull null],events]);
}
JavaScript回调处理:
PushManager.blockCallbackEvent((error, events) => {
if (error) {
console.error(error);
} else {
console.log("回调结果:" + events);
}
});
作者:FlyElephant
链接:https://www.jianshu.com/p/455e0b32623e
本文由 投稿者 创作,文章地址:https://blog.isoyu.com/archives/reactnative-diaoyongiosyuanshengfangfa.html
采用知识共享署名4.0 国际许可协议进行许可。除注明转载/出处外,均为本站原创或翻译,转载前请务必署名。最后编辑时间为:11 月 30, 2018 at 10:54 下午