Как обрабатывать всплывающие оповещения js внутри WKWebview, как это делает сафари? - PullRequest
0 голосов
/ 06 ноября 2018

Я хочу реализовать всплывающие оповещения в стиле сафари в моем WKWebview, чтобы они не охватывали весь вид. Я прикрепил два скриншота к одной и той же веб-странице, открытые из сафари и из моего WKWebView.
Это мой код для представления предупреждений js:

func shouldShowJsAlert(message: String, completionHandler: @escaping () -> Void) {
    let alert =  UIAlertController(title: nil, message: message, preferredStyle: .alert)
    alert.addAction(UIAlertAction(title: "OK", style: .default, handler: { (_) in
        completionHandler()
    }))
    DispatchQueue.main.async {
        self.present(alert, animated: true, completion: nil)
    }
}  

Слева - сафари, справа - мой WKWebView

SafariWKWebview

1 Ответ

0 голосов
/ 06 ноября 2018

WKWebView требует, чтобы вы отображали оповещения, подсказки и подтверждали себя. Do WKUIDelegate.h,

wkWebView.UIDelegate = self;

- (void)webView:(WKWebView *)webView runJavaScriptAlertPanelWithMessage:(NSString *)message initiatedByFrame:(WKFrameInfo *)frame completionHandler:(void (^)(void))completionHandler;

...