iOS 11主屏幕应用发送错误的Cookie

iOS 11主屏幕应用发送错误的Cookie,ios,cookies,safari,Ios,Cookies,Safari,自iOS 11以来,我们的一个web应用程序一直在运行,但只有在作为应用程序添加到主屏幕时才会出现问题 它允许脱机查看使用ApplicationCache清单缓存的用户所选语言的文档 当用户选择一种新语言时,问题就出现了 我们使用document.cookie将语言标记(即en_GB或de_de)持久化到cookie中,然后告诉appcache查找更新。服务器查看cookie中的语言标记,并发送特定于语言的cache.manifest文件 这是用户更改语言时的JS function setLan

自iOS 11以来,我们的一个web应用程序一直在运行,但只有在作为应用程序添加到主屏幕时才会出现问题

它允许脱机查看使用ApplicationCache清单缓存的用户所选语言的文档

当用户选择一种新语言时,问题就出现了

我们使用document.cookie将语言标记(即en_GB或de_de)持久化到cookie中,然后告诉appcache查找更新。服务器查看cookie中的语言标记,并发送特定于语言的cache.manifest文件

这是用户更改语言时的JS

function setLanguage(chosenLanguage) {
 //...
 this.setCookie("language", chosenLanguage, 10);
 window.applicationCache.update();
}
this.setCookie使用document.cookie更改cookie值,过期时间以天为单位

这在台式机和移动设备上都能很好地工作,甚至在iOS11Safari上也可以

iOS 11上的主屏幕应用程序模式除外

通过在每次cookie更新时设置唯一ID,我们可以在Web Inspector控制台中检查在每个点设置的唯一ID,并将其与服务器接收到的ID进行比较

我们发现主屏幕应用程序正在向上发送Safari中创建的cookie。不是在主屏幕应用程序中使用document.cookie创建的。我们的任何请求都不会发送cookie

不仅如此,如果我们回到Safari浏览器版本并更改语言,然后切换回主屏幕应用程序,它会发送带有新语言的更新Safari cookie,但从document.cookie读取时仍会显示我们以前在应用程序中设置的数据


我想知道的是:还有其他人有这个问题吗?有人知道解决方法吗?

是的,我相信我也有同样的问题。如果我在safari中加载我的应用程序并作为主屏幕应用程序,我发现来自safari的所有请求都伴随着safari cookie。但是,在使用主屏幕应用程序时,除清单文件外,所有请求都具有主屏幕cookie。当主屏幕应用程序请求清单时,它总是发送safari cookie,如果safari中没有cookie,则不发送cookie。我也在寻找解决办法。我希望苹果能修复这个错误。