问题描述
在 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)
}
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 (将#修改为@)