Cordova-调用iOS本机插件的JS部分

Cordova-调用iOS本机插件的JS部分,ios,cordova,ios7,Ios,Cordova,Ios7,我正在从事一个基于Cordova的iOS项目。我需要创建一个特殊的插件:首先,它必须从应用程序的iOS层调用,而不是从JS端开始 我很清楚,插件的生命周期通常在JS中启动,然后cordova.exec调用本机层,本机层实例化CDVPluginResult,然后调用JS部分 但是我的插件必须有不同的生命周期。我需要从iOS本机部分开始,它将调用JS层 我如何实现这一点 谢谢你的帮助 您可以使用: [self.webView stringByEvaluatingJavaScriptFromStrin

我正在从事一个基于Cordova的iOS项目。我需要创建一个特殊的插件:首先,它必须从应用程序的iOS层调用,而不是从JS端开始

我很清楚,插件的生命周期通常在JS中启动,然后cordova.exec调用本机层,本机层实例化CDVPluginResult,然后调用JS部分

但是我的插件必须有不同的生命周期。我需要从iOS本机部分开始,它将调用JS层

我如何实现这一点

谢谢你的帮助

您可以使用:

[self.webView stringByEvaluatingJavaScriptFromString:@"callSomeFunction();"];
或:

如果您想使用Cordova自己的事件机制,可以调用
Cordova.fireDocumentEvent
来触发JavaScript事件(您可以在JS端附加到):


如果对JavaScript的调用可能触发警报或对其他本机代码的调用,那么最好使用
setTimeout
包装JS,如前一个示例所示

writeJavascript现在已不推荐使用,您可以使用evalJs

[self.commandDelegate evalJs:@"console.log('foo')"];
[self writeJavascript:
  [NSString stringWithFormat:@"setTimeout( function() { cordova.fireDocumentEvent('%@_%@', {data:'%@'} ) }, 0);", 
  ID, event, data]];
[self.commandDelegate evalJs:@"console.log('foo')"];