Mam problem z wyświetleniem WKWebView w systemie iOS 8, aby wyświetlić okno dialogowe alertu wywoływane z Javascript. Po utworzeniu standardowego WKWebView i załadowaniu pliku HTML, mam przycisk na stronie, który tworzy prosty alert z pewnym tekstem. Działa to w UIWebView i Google Chrome/Safari, ale wydaje się nie działać w WKWebView. Każda pomoc jest doceniana.System iOS WKWebView nie wyświetlający okna dialogowego alertu javascript()
Moja konfiguracja wygląda następująco:
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 ma następującą funkcję:
<SCRIPT Language="JavaScript">
function alertTest() {
alert("Testing Alerts");
}
</SCRIPT>
i przycisk:
<b>Test Alerts: <input type="button" value="Alert Popup" onclick="alertTest()"><br></b> <br>
Ta konfiguracja działa w UIWebView i regularne przeglądarki, ale nie działa w WKWebView. Czy brakuje mi czegoś w konfiguracji? Czy powinienem używać jednego z delegatów WK do kontrolowania zachowania w oknie dialogowym alertu/potwierdzenia? Dziękuję Ci.
Jestem stoi ten sam problem. Nie mogę też połączyć inspektora safari z moim iPadem, więc nie widzę alertów ani pliku console.log. To sprawia, że rozwój na wkwebview to prawie piekło na ziemi. – ruipacheco
możesz spróbować hostować plik html i wypróbować "http: //" zamiast "file: //", może to być spowodowane tym błędem w wkwebview: http://www.openradar.me/radar?id=5839348817723392 – krisrak
Pliki html są przechowywane lokalnie, więc można uzyskać do nich dostęp w trybie offline. Plik ładuje się bez problemu, jest to tylko okno dialogowe alertu, które nie wyświetla się po naciśnięciu przycisku. – Charlie