我正在将我的应用程序从android迁移到iOS并且对于以下行,编译器在iOS上返回错误,
webviewA.loadUrl("javascript:setVars(\"" + var1 + "\",\"" + var2 + "\")");
//在Android上正确执行
对于iOS我正在尝试,
[webViewA stringByEvaluatingJavaScriptFromString:@"javascript:setVars(\"" + var1 + "\",\"" + var2 + "\")"];
这对iOS来说是正确的语法吗?谢谢。
答案 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];