0

SFSafariViewController(SVC) 是在 iOS 9 中引入的,SVC 可以从 Mobile safari 而不是从应用程序读取 cookie,它可以写入 cookie,它可以由 Mobile Safari 而不是移动应用程序访问。

上述行为在 iOS 10 之前是相同的。

从 iOS 11 开始,SVC 无法读取 Mobile Safari 的 cookie。

那么从 iOS 11 开始,cookie 共享的内容在哪里?

SVC 在哪里存储来自 iOS 11 的 cookie?

SVC 是否将 cookie 存储在启动应用程序本身中?

如果是,app中的webview(UIWebview/Wkwebview)能否读取SVC写的cookies

如果可以,SVC能否读取Webview写的cookies

如果不是,SVC 是否可以读取它在上次会话期间写入的 cookie

或 SVC 更像是 Safari 的隐身版本,它不记得以前的会话,并且无法访问应用程序的 webview 和移动 Safari 的 cookie。

4

1 回答 1

2

SVC 在哪里存储来自 iOS 11 的 cookie?

cookie/其他数据当前保存在您的容器SystemData/com.apple.SafariViewService/Library下,然后保存在和下Cookies-Webkit/WebsiteData可能会在未来的版本中改变!

SVC 是否将 cookie 存储在启动应用程序本身中?

是的,在您的容器中

如果是,app中的webview(UIWebview/Wkwebview)能否读取SVC写的cookies

不是开箱即用,您可以使用自定义加载 Web 视图URLRequest,然后让它读取这些文件,我不推荐它,因为当前保存的格式没有记录,并且将来可能会更改。

如果不是,SVC 是否可以读取它在上次会话期间写入的 cookie

是的,SFSafariViewController维护它来自以前会话的数据,它对于您的应用程序是私有的,因为它存储在您的容器中。

于 2019-10-23T14:51:32.907 回答