2012-08-12 71 views
3

我从迁移的android我的应用程序的iOS和下面的行,编译器返回我在iOS上的错误,的UIWebView调用javascript函数的语法

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

执行适用于iOS我想,

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

这将是iOS的正确语法?谢谢。

+0

谁想要在UIWebView中的Javascript运行的话题优雅的演示人,请参考到:http://creiapp.blogspot.hk/2013/04/uiwebview-javascript.html – 2013-04-18 05:43:08

回答

9

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

为了实现此目的,您需要在UIWebView实例上设置委托并实现上述的委托方法,以便在加载页面后执行JavaScript。

- (NSString *)stringByEvaluatingJavaScriptFromString:(NSString *)scriptcan 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]; 
+0

我要求脚本!我正在使用单个var进行javascript调用,但如何解决这个问题?谢谢 – Jaume 2012-08-12 11:31:40

+0

哎呀,你的问题有点含糊,但谢谢澄清。我已经更新了我的答案,详情:) – jstr 2012-08-12 11:41:08

+0

我非常感谢你的帮助。谢谢 – Jaume 2012-08-12 12:07:27