如何解决如何将回调函数从 React Native 传递到 iOS 本机端?打字稿中回调函数的正确类型是什么?
在 React Native 示例中,我调用了一个函数 aSdk.adSupportBlock,并将回调函数作为参数传递。
aSdk.adSupportBlock(()=>{ return "testtest"; });
在桥接方面,在index.ts文件中,我有一个函数也叫adSupportBlock,它可以传递任何函数作为参数(不知道这里是否可以定义函数类型输入?)并传递输入回调到原生 iOS 端。
adSupportBlock(callback :()=> string ) : Promise<boolean> {
return AmplitudeReactNative.adSupportBlock(this.instanceName,callback);
}
在 type.ts 中
adSupportBlock(instanceName: string,callback: ()=> string): Promise<boolean>;
在 iOS Native Side 中,我有一个 iOS 原生 sdk,它也称为 adSupportBlock,它能够传入一个函数。我想将 React Native 示例中定义的客户回调函数传递给 iOS 本机 sdk 在 .swift 文件中
@objc
func adSupportBlock(_ instanceName: String,callback: @escaping RCTResponseSenderBlock,resolver resolve: RCTPromiseResolveBlock,rejecter reject: RCTPromiseRejectBlock) -> Void {
Amplitude.instance(withName: instanceName).adSupportBlock = callback
resolve(true)
}
在 iOS 原生 .m 文件中,我有:
RCT_EXTERN_METHOD(adSupportBlock:(NSString *)instanceName
callback(RCTResponseSenderBlock)callback
resolver:(RCTPromiseResolveBlock)resolve
rejecter:(RCTPromiseRejectBlock)reject){
callback();
}
在 iOS 原生 SDK 中。 adSupportBlock 定义如下:
* Example:
* aSdk.adSupportBlock = ^{
* return [[ASIdentifierManager sharedManager] advertisingIdentifier];
@property (nonatomic,strong,nullable) AdSupportBlock adSupportBlock;
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
当我运行 iOS 示例时出现错误
错误:无法将“RCTResponseSenderBlock”(又名“(Optional
看起来 RCTResponseSenderBlock 被定义为 (Optional<Array<Any>>) -> ()
类型。
我该如何解决这个问题?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。