我有一个 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,
迈贝克