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