WKWebView - 获取html表单的查询参数

Posted

技术标签:

【中文标题】WKWebView - 获取html表单的查询参数【英文标题】:WKWebView - Get query parameters of html form 【发布时间】:2018-03-19 08:59:33 【问题描述】:

我刚刚从 UIWebView 切换到 WKWebView。 我有一个 html 文件(以字符串形式加载),其中包括一个 HTML 表单,其中一个输入为文本类型,还有一个提交按钮。

使用 UIWebView,URL 包含 URL 上的输入值作为查询参数。 (some-url.index?key=value)

切换到 WKWebView 时,URL 不包含参数作为 URL 的一部分。

在 UIWebView 我得到这样的 URL:

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType

    NSLog(@"Loading URL :%@",request.URL.absoluteString);

在 WKWebView 我得到这样的 URL:

-(void)webView:(WKWebView *)webView decidePolicyForNavigationAction:(nonnull WKNavigationAction *)navigationAction decisionHandler:(nonnull void (^)(WKNavigationActionPolicy))decisionHandler 
    decisionHandler(WKNavigationActionPolicyAllow);

    NSLog(@"Loading URL :%@", navigationAction.request.URL.absoluteString);

谢谢大家的帮助。

【问题讨论】:

【参考方案1】:

对于将来遇到此问题的其他用户:

经过一番挖掘,似乎在 WKWebView 中为了让 url 中传递查询参数,url 必须具有有效的方案(http://、https:// 等)。

所有其他方法对我来说都失败了。

【讨论】:

以上是关于WKWebView - 获取html表单的查询参数的主要内容,如果未能解决你的问题,请参考以下文章

WKWebView将查询参数添加到点击的链接

HttpServletRequest - 获取查询字符串参数,无表单数据

检测用户何时点击加载在 UIWebView 或 WKWebView 中的 web 表单

在 Swift 中从 WKWebview 获取 HTML

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

通过在 WKWebView 中评估 JavaScript 来获取 HTML