如何在swift中获取WKWebView的Post请求正文
我浏览了这篇文章。但它并没有告诉我们正在使用什么JS脚本。我刚开始在swift中注入JS,所以这篇文章对我来说并不清楚如何在swift中获取WKWebView的Post请求正文,swift,Swift,我浏览了这篇文章。但它并没有告诉我们正在使用什么JS脚本。我刚开始在swift中注入JS,所以这篇文章对我来说并不清楚 在wkwebview中加载请求后,我希望获取post请求的http正文。获得它的正确方法是什么。可能与错误有关:。它已经在iOS 13中修复 我找到了这个问题的解决办法。要获取post请求html的内容,我们需要添加以下函数:- func webView(_ webView: WKWebView, decidePolicyFor navigationAction: WKNavi
在wkwebview中加载请求后,我希望获取post请求的http正文。获得它的正确方法是什么。可能与错误有关:。它已经在iOS 13中修复 我找到了这个问题的解决办法。要获取post请求html的内容,我们需要添加以下函数:-
func webView(_ webView: WKWebView, decidePolicyFor navigationAction: WKNavigationAction, decisionHandler: @escaping (WKNavigationActionPolicy) -> Void) {
print(navigationAction.request.httpBody)
}
func webView(webView:WKWebView,didfish导航:WKNavigation!)
{
PerformanceMonitor.stopEvent(事件:.startToLogin)
hideActivityIndicator(延迟:真)
webView.evaluateJavaScript(((function(){for(var i=0;i
evaluateJavaScript将javascript字符串作为参数,该参数只不过是要提取的html内容的路径。我在这里使用一个函数cz,我需要在所有元素的列表中找到一个内容。您可以使用“document.documentElement.innerHTML”,它将给出全部内容。“document.getElementById(\“我的id\”).innerHTML”。这是什么意思?我需要添加任何html文档或JS脚本才能运行吗?我还需要在JS本身中发出请求吗?上面函数中的jsonString对我来说是空的,因此返回。我编辑了我的ans,请现在检查它,我希望对youhttpbody有效的值为零。所以我之前使用的是UIWebView,它用于完全返回request.httpbody。但对于WKWebView,httpbody始终为零。
webView.evaluateJavaScript("(function() { for (var i = 0; i < document.forms.length; ++i) { if (typeof document.forms[i]['SAMLResponse'] !== 'undefined') return document.forms[i]['SAMLResponse'].value;} })();", completionHandler: { (jsonRaw: Any?, error: Error?) in
guard let jsonString = jsonRaw as? String
else
{
return
}
//use the extracted content for use.
})
}