【问题标题】:Return data from a delegate in Cordova iOS从 Cordova iOS 中的委托返回数据
【发布时间】:2015-07-17 17:19:17
【问题描述】:
我对 iOS 和 Cordova 非常陌生。我正在开发一个从蓝牙设备读取数据并使用供应商 SDK 的应用程序。我正在将一个函数从 js 调用到 iOS 中,该函数会自动调用一个委托。代表基本上会读取我正在使用手持设备读取的标签。现在,当我继续使用手持设备读取标签时,我需要不断地将读取的标签发送回客户端。代表的签名如下所示:
-(void)transponderReceived:(NSString *)epc crc:(NSNumber *)crc pc:(NSNumber *)pc rssi:(NSNumber *)rssi fastId:(NSData *)fastId moreAvailable:(BOOL)moreAvailable
有没有办法让我通过自动调用的委托将这些数据返回给客户端?
【问题讨论】:
标签:
ios
objective-c
cordova
delegates
【解决方案1】:
当你从 javascript 调用函数并创建插件结果时,你必须让它继续创建回调
CDVPluginResult* result = nil;
result = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsDictionary:returnInfo];//returnInfo is a NSDictionary with the data to be returned, you can return an NSString or an NSArray instead
[result setKeepCallbackAsBool:YES];
[self.commandDelegate sendPluginResult:result callbackId:callbackId];//You will have to store the callbackId somewhere so you can use it on the deletage, like creating a @property on the .h
所以你可以继续从代理发送插件结果