美文网首页
集成React-Native 到原生项目的那些坑之Swift找不

集成React-Native 到原生项目的那些坑之Swift找不

作者: 爱猫的仙生 | 来源:发表于2017-11-30 14:37 被阅读0次

最近在做swift项目集成react-native 通讯模块

但是遇到一个系统崩溃死活找不到原因

系统总是抛出异常说找不到方法 "method is not ...."

网上总是千篇一律的在桥接文件引入头文件->建立一个私有.m文件用RCT_EXTERN_METHOD宏告诉js方法名-> 在swift 文件前面用@objc 加你实现的方法写出方法实现

可是我按照这么写系统还是找不到我的方法实现

折腾了半天,才发现新版的swift简直是愚蠢之极,需要在@objc中标注oc的方法名才能找到swift的方法实现,具体上代码

//BridgeModuler.m

#import <Foundation/Foundation.h>

#import <React/RCTBridgeModule>

@interface RCT_EXTERN_MODULE(BridgeManager, NSObject)

RCT_EXTERN_METHOD(getToken:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject)

RCT_EXTERN_METHOD(logout)

RCT_EXTERN_METHOD(getConfig:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject)

@end

//BridgeManager.swift

@objc(BridgeManager)

class BridgeManager: NSObject {

@objc(getToken:reject:) func getToken(resolve:RCTPromiseResolveBlock, reject:RCTPromiseRejectBlock) -> Void {

}

@objc(getConfig:reject:) func getConfig(resolve:RCTPromiseResolveBlock, reject:RCTPromiseRejectBlock) -> Void {

}

@objc(logout) public func logout() {

}

相关文章

网友评论

      本文标题:集成React-Native 到原生项目的那些坑之Swift找不

      本文链接:https://www.haomeiwen.com/subject/ivyvbxtx.html