【发布时间】:2015-01-10 00:16:47
【问题描述】:
我在 iOS 8 中获取 WKWebView 以显示从 Javascript 调用的警报对话框时遇到了一些问题。在创建一个标准的 WKWebView 并加载一个 HTML 文件后,我在页面上有一个按钮,可以创建一个带有一些文本的简单警报。这适用于 UIWebView 和 Google Chrome/Safari,但似乎不适用于 WKWebView。任何帮助表示赞赏。
我的设置如下:
WKWebViewConfiguration *config = [[WKWebViewConfiguration alloc] init];
config.allowsInlineMediaPlayback = YES;
config.mediaPlaybackRequiresUserAction = false;
_wkViewWeb = [[WKWebView alloc] initWithFrame:_viewWeb.frame config];
_wkViewWeb.scrollView.scrollEnabled = NO;
NSString *fullURL = @"file://.../TestSlide.html";
NSURL *url = [NSURL URLWithString:fullURL];
NSURLRequest *request = [NSURLRequest requestWithURL:url cachePolicy:NSURLRequestReloadIgnoringCacheData timeoutInterval:10];
[_wkViewWeb loadRequest:request];
html有以下功能:
<SCRIPT Language="JavaScript">
function alertTest() {
alert("Testing Alerts");
}
</SCRIPT>
还有一个按钮:
<b>Test Alerts: <input type="button" value="Alert Popup" onclick="alertTest()"><br></b> <br>
此设置适用于 UIWebView 和常规浏览器,但不适用于 WKWebView。我在配置中遗漏了什么吗?我应该使用 WK 代表之一来控制警报/确认对话框行为吗?谢谢。
【问题讨论】:
-
我也面临同样的问题。我也无法将 safari 检查器连接到我的 ipad,因此我看不到警报或 console.log。这使得 wkwebview 的开发几乎是人间地狱。
-
你可以尝试托管 html 文件并尝试“http://”而不是“file://”,这可能是因为 wkwebview 中的这个错误:openradar.me/radar?id=5839348817723392
-
html 文件存储在本地,因此可以离线访问。文件加载没有问题,它只是在点击按钮时不显示的警报对话框。
标签: javascript ios wkwebview