WKWebView:表单未在 WKWebView (Swift) 中提交

Posted

技术标签:

【中文标题】WKWebView:表单未在 WKWebView (Swift) 中提交【英文标题】:WKWebView: The form is not submitting in WKWebView (Swift) 【发布时间】:2020-09-24 14:45:38 【问题描述】:

我正在使用 WKWebView,当提交表单时,我在 decidePolicyFor navigationAction 委托方法中得到断点,并且以下条件也是正确的。

navigationAction.navigationType == .formSubmitted

下面的代码也在打印预期的数据-

打印(字符串(数据:(navigationAction.request.httpBody!),编码: .utf8)) 打印(navigationAction.request.mainDocumentURL)

谁能帮我解决这个问题? Xcode 版本:12 iOS 版本:14

我是否必须配置某些内容或允许某些策略才能使其发挥作用?

【问题讨论】:

【参考方案1】:

你的 javascriptwindow.open() 吗?如果是这样,您将需要自己处理。实现WKWebView的UIDelegate,按照如下方法处理action:

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

在这个方法中,你可以用获取的配置创建一个新的WKWebView,并呈现在屏幕上。

【讨论】:

它没有 window.open()。有一个小的 html 表单,并且有以下脚本来提交表单。

以上是关于WKWebView:表单未在 WKWebView (Swift) 中提交的主要内容,如果未能解决你的问题,请参考以下文章

WKWebView 未在设备上运行

iframe 未在 WKWebview 中加载

WKWebView 未在 URL 中打开带有梵文字体的 URL

CSS 未在 WKWebView 中加载

WKWebView 的网页未在 dispatch_get_main_queue 内显示页面

嵌入在 html 中的 javascript 未在 wkwebview 中运行