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】:你的 javascript 有 window.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 未在 URL 中打开带有梵文字体的 URL