UIWebView调用带有参数的JS获胜'不起作用

UIWebView calling JS with arguments won't work

本文关键字:获胜 不起作用 JS 调用 参数 UIWebView      更新时间:2023-09-26

我有一个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,有时它卡住了,没有完成加载。但尽管如此,它并没有显示一个弹出的"你好"!

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

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

无任何参数的JS函数

function initWithDataFromObjC() {
      alert("hello");        
} 

第二个构造将在没有任何问题的情况下运行。但我想知道,当我试图传递一些参数时,为什么我不能正常工作?

BR&THX,

mybecks

尝试使用:

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

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