如何在没有 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(...) 没有addinject 对我来说是“巨大的设计漏洞”。

参考资料:

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?

在没有 JavaScript 的情况下将 Oracle PL/SQL 移植到 Snowflake

javascript:在没有php的情况下将数据存储在文件或数据库中?