问题描述
对于某些WKNavigationAction,我需要将cookie加载到wkwebview中, 所以我取消了动作
webView(_ webView: WKWebView,decidePolicyFor navigationAction: WKNavigationAction,decisionHandler: @escaping (WKNavigationActionPolicy) -> Void)
像这样
if !cookiesAmended,let sessionCookies = httpcookiestorage.shared.cookies {
cookiesAmended = true
print("decidePolicyFor amending")
decisionHandler(.cancel)
amendWith(cookies: sessionCookies,thenLoadRequest: navigationAction.request)
return;
}
加载Cookie
func amendWith(cookies: [HTTPCookie],thenLoadRequest request: URLRequest)
{
let sem = dispatchGroup()
for cookie in cookies {
sem.enter()
self.webView.configuration.websiteDataStore.httpCookieStore.setCookie(cookie,completionHandler: {
sem.leave()
let name = cookie.name
print("decidePolicyFor amended with \(name)")
})
}
sem.notify(queue: .main) { [weak self] in
guard let self = self else {
return
}
self.webView.load(request)
}
}
一旦加载完毕,我将使用navigationAction.request完成webview.load
但是翻译中会丢失一些内容(特别是formdata)
除了告诉服务器人员我的想法之外,正确的方法是什么? 如此美妙的建筑?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)