问题标签 [wkhttpcookiestore]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
cookies - 从 IOS 13.0 开始,当 webview 上的 cookie 发生变化时,cookieDidChange 永远不会被触发
我正在使用 Cookie Store Observer 来跟踪我的 webview 上 cookie 值的变化。它在所有版本的 IOS 上运行良好。但自从 IOS 13.0 出来后,这不再有效。我没有接到任何电话
我在创建 web 视图之前设置 cookie 观察者。
突然间,它从 IOS 13.0 停止工作。我没有注意到围绕这个 API 的文档有任何变化。
有人有关于 IOS 13.0 的任何信息吗?
ios - 共享 NSHTTPCookieStorage 会将持久性 cookie 同步到 WKWebsiteDataStore defaultDataStore httpCookieStore?
我发现了一个有趣的事实,shared会将持久性cookie( )NSHTTPCookieStorage
同步到,谁能告诉我这是一个特性还是一种不可靠的行为?没有找到这方面的文档...isSessionOnly=false
WKWebsiteDataStore.defaultDataStore.httpCookieStore
在 iOS 13.2.2 和 12.1 上测试
POC
步骤1。创建持久性 cookie
第2步。从默认的 WK 存储中读取上一个 cookie
ios - 有没有办法查看 WKWebView 何时可以使用 HTTPCookie?
免责声明
我知道有几个与此问题相关的问题,我已经查看了所有可能的问题,但他们似乎在询问有关如何同步 cookie 的问题。这与那些不同,在 cookie 被正确传输的意义上,它们被传输与它们可用时之间似乎存在延迟。WKWebView
情况
我有一个使用本机登录流程的应用程序,然后,身份验证后,将用户带到WKWebView
应用程序的内容。WKWebsiteDataStore
在's httpCookieStore
( WKHTTPCookieStore
)上设置 cookie 似乎存在问题。
我遇到的问题是,在我在 上设置 cookie 之后,在设置 cookie httpCookieStore
(和调用的完成处理程序)与 cookie 实际可用时之间存在延迟WKWebView
。
本质上,我调用 set cookie 方法,并在其完成处理程序中load(_:)
调用WKWebView
. Web 视图按预期加载,但是,在 Web 视图内部进行的第一个网络调用缺少刚刚设置的 cookie。如果我在调用第一个网络调用之前添加一个 500 毫秒的延迟,load(_:)
就会WKWebView
有 cookie。
代码
在我的视图控制器中:
问题
我想这里的问题是任何人都可以解释为什么在设置的 cookie 和调用其完成处理程序之间存在延迟,以及当 cookie 在内部实际可用时WkWebView
,有没有办法(显然在设置的 cookie 完成之外因为这已经发生了)知道什么时候 cookie 在WKWebView
?
cookies - WKHTTPCookieStore HTTPCookieStorage 同步类
用例:我有两个WKWebView
,一个在主应用程序中,一个在应用程序扩展中。我希望他们共享同一个 cookie 商店。
Apple API 有 2 个不同的 cookie 存储类:WKHTTPCookieStore
和HTTPCookieStorage
.
苹果还有sharedCookieStorage(forGroupContainerIdentifier identifier: String) -> HTTPCookieStorage
for URLSession
s (not WKWebView
s) 可以跨应用程序/构建目标/扩展使用。
我的计划是将一个WKWebKit
cookie 传输到 sharedCookieStorage,然后再传输到另一个WKWebKit
cookie 存储。
在我写一个之前,有没有人有一个简单的包装类来接收这些类,观察它们,并使它们保持同步?
还是有其他更简单的方法来完成这个看似非常常见的用例?
ios - Cookie 存储 HTTPCookieStorage 和 WKHTTPCookieStore 同步问题
社区
我们在存储HTTPCookieStorage和WKHTTPCookieStore之间同步 cookie 时遇到问题,我们希望此资源能够帮助我们解决问题。(苹果开发者论坛还没有得到任何结果)。
关于应用程序和功能:
- URL请求(REST API)
- WKWebView作为应用程序的一部分
- 直接链接到 cookie 的客户环境
- WKWebView和URLRequest都可以更改 cookie
- 所有WKWebView 都使用相同的WKWebSiteDataStore和WKProcessPool(通过WKWebViewConfiguration)。
因此,根据项目功能,我们需要在每次完成请求后检查并同步两个存储中的实际 cookie。
正如我们所知,默认情况下“从盒子里”在这些存储之间存在同步,但是从我们的调试和调查这个功能我们知道,这个“盒子里”同步只在真实设备上工作,不稳定(可能同步或可能不是)并且它在 iOS 11.3 发布之前工作稳定。
我们创建了 CookieSync 管理器,它可以手动同步具有存储优先级的存储之间的 cookie(优先存储 cookie 将同步到其他存储,尽管有值)。对于管理器,我们使用与每个WKWebView对象相同的WKWebSiteDataStore 。
从我们的测试和调试结果来看,我们在同步某些 cookie 方面存在问题,这对我们和我们的客户来说至关重要。
也许有人知道简单正确地同步 cookie 的方法或变体?
最好的问候, Dmytrii Golovanov