如何在没有JavaScript的情况下将cookie注入WKWebView或WKWebSiteDataStore?

时间:2016-10-05 19:12:14

标签: javascript ios cookies wkwebview

我正在尝试以显式/编程方式设置WKWebView流程池的每域cookie值。我想模拟服务器发送回Set-Cookie标头时发生的情况。我在这里和其他地方所做的研究表明将其注入JavaScript。我原则上不喜欢这样 - 感觉不对。我想和“负责人”(WebKit内部cookie数据结构)谈谈,不要在最后一秒通过第二语言(JavaScript)注入黑客。

这个方法的失败率为1%,可能是由于1)WKWebView交互的高度异步性,因为所有的网络和JavaScript计算都发生了在一个单独的进程中2)我在登录会话到期时多次重复使用WKWebView次,并在强制页面重新加载之前重置document.cookie脚本。

我很惊讶没有像WKWebSiteDataStore.addCookie(value: String, inDomain: NSURL)那样的东西。事实上它removeDataOfTypes(...)没有addinject尖叫“给我留下了”巨大的设计漏洞“。

参考文献:

ios9 - Multiple WkWebView sharing cookie WKProcessPool() doesn't work?

Can I set the cookies to be used by a WKWebView?

1 个答案:

答案 0 :(得分:0)

只有iOS 11支持此功能:httpCookieStore