Cordova-调用iOS本机插件的JS部分
我正在从事一个基于Cordova的iOS项目。我需要创建一个特殊的插件:首先,它必须从应用程序的iOS层调用,而不是从JS端开始 我很清楚,插件的生命周期通常在JS中启动,然后cordova.exec调用本机层,本机层实例化CDVPluginResult,然后调用JS部分 但是我的插件必须有不同的生命周期。我需要从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
[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')"];