在我们的应用程序上,我们向用户首次访问时显示了一条非常简单的“入职”消息。 我们依赖localStorage,如果不支持它,则可以使用github.com/Acanguven/StorageService在cookie上进行回退。此数据是第一方的,因为它是我们的Cookie,并且已为我们的网站设置。就像adtech或跨域Cookie /存储一样:例如,这是不向已访问该网站的用户显示入门模式的一种简单方法。
该东西在我的iPhone上无法正常工作,当我们尝试创建cookie /本地存储时,我们收到一些javascript“安全错误或访问被拒绝”的消息。
例如我们的数据之一是这样的:
if ( (window.StorageService.localStorage.getItem('user_already_saw_the_message') !== null) ) {
showMessage():
}
// If user never saw the message, show 1st msg almost immediately
else {
//do nothing
}
}
我检查了我的iPhone,确实在Apps> Safari中说该行阻止所有cookie被激活/“打开”。因此它甚至可以阻止第一方Cookie(类似于跨域或某些广告Cookie)。
所以我的问题有两个子部分:
要评估用户群上的问题有多大/重要:是我的iphone还是所有升级到iOS11并很快将升级到iOS12的iphone用户自动获得默认设置“所有cookie被阻止= “开”?
如果问题1的答案为“是,默认情况下,所有用户都将阻止所有cookie设置”,那么鉴于iOS的市场份额,以下问题就变得尤为重要,因为它会影响大量用户的用户:如果我们既不能使用Cookie也不可以使用本地/会话存储,那么如何持久保存“仅显示此消息一次”或“每月仅显示此模式”之类的数据?
答案 0 :(得分:2)
我做了一些阅读,发现了这一点:
iOS11确实引入了一种称为cookie的防止存储机制 智能跟踪预防,但仅影响第三方 饼干。在iOs11上,“管理Cookies”的默认设置为允许 当前网站上的Cookie ,即第一方Cookie。
因此您的应用程序应该没有问题。 它应该工作正常。参考:https://webkit.org/blog/7675/intelligent-tracking-prevention