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

#ios #swift #wkwebview #form-submit #wkwebviewconfiguration

#iOS #swift #wkwebview #форма-отправить #конфигурация wkwebviewconfiguration

Вопрос:

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

navigationAction.navigationType == .FormSubmitted

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

печать (строка(данные: (navigationAction.request.httpBody!), кодировка: .utf8)) печать (navigationAction.request.mainDocumentURL)

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

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

Ответ №1:

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

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

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

Комментарии:

1. В нем нет window.open() . Существует одна небольшая HTML-форма и есть следующий скрипт для отправки формы. <script>window.onload = function(){ document.forms[‘myForm’].submit();}</script>