如何从我的自定义CDVPlugin类调用javascript函数(Objective C语言)

时间:2016-06-18 06:37:29

标签: ios objective-c cordova plugins

我在CDVPlugin app。

中创建了一个自定义(Cordova)插件

通过该插件,如果javascript文件调用CDVPlugin中声明的方法,那么我可以通过

轻松发送响应
CDVPluginResult *pluginResult = nil;
pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsString:[NSString stringWithFormat:@"%@",deviceUUIDString]];
self.delegateCallbackId=command.callbackId;
[self.commandDelegate sendPluginResult:pluginResult callbackId:command.callbackId];

但是如何从我的自定义CDVPlugin类调用javascript函数。

2 个答案:

答案 0 :(得分:1)

如果我们要调用任何javascript方法调用它,请使用在CDVCommandDelegate类中声明的evalJs来调用它,并且可以将该函数的名称写为带分号的字符串

在科尔多瓦: 我们可以像这样使用evaluateJavaScript方法

[self.commandDelegate evalJs:@"callCustomMethodJs();"];

答案 1 :(得分:0)

您可以尝试以下

NSString * jsfunctioncall = [NSString stringWithFormat:@"yourjsfunctiontobecalled()"];

#ifdef __CORDOVA_4_0_0
    [self.webViewEngine evaluateJavaScript:jsfunctioncall completionHandler:nil];
#else
    [self.webView stringByEvaluatingJavaScriptFromString:jsfunctioncall];
#endif

CDVPlugin有webViewEngine和webView作为其属性,所以如果你从CDVPlugin继承它可能会工作。为了这个工作你的JS可能需要已经加载。我没有自己尝试过。

希望有所帮助:)