如何获得我的Cordova iOS插件实例的参考?

时间:2014-02-28 22:45:16

标签: ios cordova cordova-plugins

我想用自定义的Cordova iOS插件做一些非正统的事情。从JS方面,我调用一个函数,将回调保存在插件本机端的memeber变量中,如下所示:

-(void) setCallback:(CDVInvokedUrlCommand*)command {
  _callbackId = command.callbackId; 
}

这就是我所做的一切。我不会触发回调,因为我希望稍后当本机端的某些条件变为真时触发它。我在本机方面编写了一个单独的方法:

-(void) fireCallback:(CDVInvokedUrlCommand*)command {
    CDVPluginResult *pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK];
    [self.commandDelegate sendPluginResult:pluginResult callbackId:saveStateCallbackId];
}

这个方法不是要从JS方面调用的。相反,我想在原生方面的某些条件变为真时调用它。问题是我想从AppDelegate.m调用此方法,但是如何获取对插件实例的引用以便我可以调用该方法?

2 个答案:

答案 0 :(得分:2)

傻傻的我......我不需要所有这些技巧。结果我可以像这样直接调用js:

  

[网页视图   stringByEvaluatingJavaScriptFromString:@ “myJavascriptFunction()”];

http://blog.techno-barje.fr//post/2010/10/06/UIWebView-secrets-part3-How-to-properly-call-ObjectiveC-from-Javascript/

我可以在AppDelegate中引用webview,如下所示:self.viewController.webView

问题解决了。

答案 1 :(得分:0)

AppDelegate应该有一个viewController成员,允许您以这种方式访问​​您的插件实例

PluginClass* pluginInstance = [self.viewController getCommandInstance:@"PluginName"];