WKWebView: форма не отправляется в WKWebView (Swift)

Я использую WKWebView, и когда форма отправляется, я получаю точку останова в методе делегата decidePolicyFor navigationAction, и следующее условие также верно.

navigationAction.navigationType == .formSubmitted

Следующий код также печатает ожидаемые данные:

print(String(данные: (navigationAction.request.httpBody!), кодировка: .utf8)) print(navigationAction.request.mainDocumentURL)

Кто-нибудь может помочь мне с проблемой? Версия Xcode: 12 Версия iOS: 14

Нужно ли мне что-то настраивать или разрешать некоторым политикам, чтобы это работало?


person Mayank Bhaisora    schedule 24.09.2020    source источник


Ответы (1)


У вас есть JavaScript window.open()? Если это так, вам придется справиться с этим самостоятельно. Реализуйте UIDelegate WKWebView и обработайте действие следующим методом:

optional func webView(_ webView: WKWebView, 
    createWebViewWith configuration: WKWebViewConfiguration, 
                  for navigationAction: WKNavigationAction, 
       windowFeatures: WKWindowFeatures) -> WKWebView?

В этом методе вы можете создать новый WKWebView с полученной конфигурацией и представить его на экране.

person Kartikey    schedule 25.09.2020
comment
У него нет window.open(). Существует одна небольшая HTML-форма и следующий скрипт для отправки формы. ‹script›window.onload = function(){ document.forms['myForm'].submit();}‹/script› - person Mayank Bhaisora; 25.09.2020