uiWebview调用javascript函数语法

时间:2012-08-12 10:56:30

标签: javascript iphone ios xcode

我正在将我的应用程序从android迁移到iOS并且对于以下行,编译器在iOS上返回错误,

webviewA.loadUrl("javascript:setVars(\"" + var1 + "\",\"" + var2 + "\")"); //在Android上正确执行

对于iOS我正在尝试,

[webViewA stringByEvaluatingJavaScriptFromString:@"javascript:setVars(\"" + var1 + "\",\""  + var2 +  "\")"];

这对iOS来说是正确的语法吗?谢谢。

1 个答案:

答案 0 :(得分:9)

根据this answer on another similar question,您需要实施UIWebView委托方法webViewDidFinishLoad:,并在其中实施[myWebView stringByEvaluatingJavaScriptFromString:@"myJavaScriptCode()"]

为了使其工作,您需要在UIWebView实例上设置委托并实现上面提到的委托方法,以便在页面加载后执行JavaScript。

- (NSString *)stringByEvaluatingJavaScriptFromString:(NSString *)script can be found here的文档。

现在问题的其他部分(感谢澄清!)..要在Objective-C中连接字符串,您可以使用NSString类方法stringWithFormat:

例如,要将两个Objective-C值传递给JavaScript字符串,您可以执行以下操作:

// Substitute your Objective-C values into the string
NSString *javaScript = [NSString stringWithFormat:@"setVars('%@', '%@')", var1, var2, nil];

// Make the UIWebView method call
NSString *response = [webViewA stringByEvaluatingJavaScriptFromString:javaScript];