Javascript UIWebView使用参数调用JS赢得';行不通

Javascript UIWebView使用参数调用JS赢得';行不通,javascript,ios,uiwebview,Javascript,Ios,Uiwebview,我有一个UIWebView,里面有一个HTML页面。现在我想在HTML中调用一个JS函数,并传递其中Objective-C变量的一些值 - (void) webViewDidFinishLoad:(UIWebView *)_webView{ NSString *selectedValue = [_webView stringByEvaluatingJavaScriptFromString:[NSString stringWithFormat:@"initWithDataFromObjC

我有一个UIWebView,里面有一个HTML页面。现在我想在HTML中调用一个JS函数,并传递其中Objective-C变量的一些值

-  (void) webViewDidFinishLoad:(UIWebView *)_webView{
    NSString *selectedValue = [_webView stringByEvaluatingJavaScriptFromString:[NSString stringWithFormat:@"initWithDataFromObjC(%@)", @"hello"]];

    NSLog(@"webViewDidFinishLoad %@", @"YES");
}
HTML文件中的JS函数:

  function initWithDataFromObjC(param1) {
           alert(param1);        
  }            
当我在模拟器中运行应用程序时,有时它会正确加载HTML,有时它会卡住,无法完成加载。但无论如何,它不会显示带有“hello”的弹出窗口

如果我将编码更改为以下内容:

-  (void) webViewDidFinishLoad:(UIWebView *)_webView{
    NSString *selectedValue = [_webView stringByEvaluatingJavaScriptFromString:@"initWithDataFromObjC()"];

    NSLog(@"webViewDidFinishLoad %@", @"YES");
}
没有任何参数的JS函数

function initWithDataFromObjC() {
      alert("hello");        
} 
第二个构造将毫无问题地运行。但是我想知道为什么我在尝试传递一些参数时不能正常工作

百日咳

Mybeck

试试:

 NSString *selectedValue = [_webView stringByEvaluatingJavaScriptFromString:[NSString stringWithFormat:@"initWithDataFromObjC('%@')", @"hello"]];

尝试:

 NSString *selectedValue = [_webView stringByEvaluatingJavaScriptFromString:[NSString stringWithFormat:@"initWithDataFromObjC('%@')", @"hello"]];


谢谢你@JonathanNaguin。这对+1有效。但是当我想把两个参数传递给JS函数时,它就不起作用了。
stringByEvaluatingJavaScriptFromString
方法只支持1个参数吗?我认为有两个参数应该类似于“initWithDataFromObjC(“%@”,“%@”)”当然!但我意识到这是一个愚蠢的错误,现在有了两个或更多的参数,它就可以工作了;)谢谢你@JonathanNaguin。这对+1有效。但是当我想把两个参数传递给JS函数时,它就不起作用了。
stringByEvaluatingJavaScriptFromString
方法只支持1个参数吗?我认为有两个参数应该类似于“initWithDataFromObjC(“%@”,“%@”)”当然!但我意识到这是一个愚蠢的错误,现在有了两个或更多的参数,它就可以工作了;)