#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>