如何在没有 JavaScript 的情况下将 cookie 注入 WKWebView 或 WKWebSiteDataStore?
Posted
技术标签:
【中文标题】如何在没有 JavaScript 的情况下将 cookie 注入 WKWebView 或 WKWebSiteDataStore?【英文标题】:How to inject a cookie into WKWebView or WKWebSiteDataStore w/o JavaScript? 【发布时间】:2016-10-05 19:12:13 【问题描述】:我正在尝试显式/以编程方式设置 WKWebView 进程池的每个域 cookie 值。我想准确模拟服务器发回Set-Cookie
标头时会发生什么。我在这里和其他地方所做的研究表明将其作为 javascript 注入。我原则上不喜欢那样——感觉不对。我想与“负责人”(WebKit 内部 cookie 数据结构)交谈,不要在最后一秒通过第二种语言(JavaScript)注入黑客攻击。
我也得到了这个方法令人发狂的 1% 的失败率,可能是由于 1)WKWebView
交互的高度异步性,因为所有的网络和 JavaScript 计算都发生在一个单独的进程和 2) 当登录会话过期时,我多次重复使用相同的 WKWebView
,并在强制页面重新加载之前重置 document.cookie
脚本。
我很惊讶没有像 WKWebSiteDataStore.addCookie(value: String, inDomain: NSURL)
这样的东西;事实上它有removeDataOfTypes(...)
没有add
或inject
对我来说是“巨大的设计漏洞”。
参考资料:
ios9 - Multiple WkWebView sharing cookie WKProcessPool() doesn't work?
Can I set the cookies to be used by a WKWebView?
【问题讨论】:
【参考方案1】:只有 iOS 11 支持:httpCookieStore (
【讨论】:
以上是关于如何在没有 JavaScript 的情况下将 cookie 注入 WKWebView 或 WKWebSiteDataStore?的主要内容,如果未能解决你的问题,请参考以下文章
如何在没有javascript的情况下将PDF嵌入网页[重复]
如何在没有 JavaScript 的情况下将 cookie 注入 WKWebView 或 WKWebSiteDataStore?
如何在没有任何错误的情况下将其他 JavaScript 文件连接到 Vue 文件?
如何在没有 ASP.NET Core 的情况下将 Json 数据从控制器发送到 javascript?