情况:我正在构建一个cordova插件,用于将现有的iOS库与Ionic连接起来。方法的基本映射已完成并正常工作,这意味着我可以通过Angular方法调用iOS方法并获得成功/错误回调。
问题:调用了一个登录方法,然后调用适当的委托方法(例如userDidLoginWithSuccess)。从登录方法到cordova插件的回调很简单,但我需要以某种方式从委托方法回调,以便让Ionic应用程序知道用户是否已成功登录。
对此有何想法?感谢。
PS:我查了这篇帖子,但没有帮助,虽然这是一个类似的问题。 Phonegap - Send message to Javascript from Objective-c in a plugin delegate
答案 0 :(得分:6)
在.h上创建一个属性callbackId,用于存储插件的回调标识符
@property (nonatomic, strong) NSString* callbackId;
然后,在您的插件方法上,将callbackId存储在您创建的属性上。
self.callbackId = command.callbackId;
最后,在委托上使用callbackId发送插件结果
CDVPluginResult* result = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsString:@"string result"];
[self.commandDelegate sendPluginResult:result callbackId:self.callbackId];