3

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

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

对于我正在尝试的 iOS,

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

哪个是 iOS 的正确语法?谢谢你。

4

1 回答 1

9

根据另一个类似问题的答案,您需要实现UIWebView委托方法webViewDidFinishLoad:,并在那里实现[myWebView stringByEvaluatingJavaScriptFromString:@"myJavaScriptCode()"]

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

- (NSString *)stringByEvaluatingJavaScriptFromString:(NSString *)script 可在此处找到文档。

现在对于您问题的另一部分(感谢您的澄清!).. 要在 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];
于 2012-08-12T11:19:46.537 回答