在WkWebView / mobile Safari的页面中为iframe启用会话cookie
我有一个网站iframed到第三方网页,它本身嵌入在iOS应用程序的WkWebView
中。 移动Safari和WkWebView
拒绝为我的网站发送的会话(仅限http)cookie,基本上打破了所有内容。 移动Safari中的解决方法是启用设置中的所有cookie(yuck)或指示用户直接访问我的网站(因此,就Safari而言,它被视为“我访问的网站”); 这些都不是特别可口的。 我没有发现WkWebView
的解决WkWebView
。
这个问题分为两部分:
1)我正在考虑在我的网站中实现重定向服务,它将目标网址作为参数,并在用户页面加载时将用户重定向到该网址。 然后,第三方网站可以链接到我的重定向页面,其URL设置为马上向用户发送,希望这将被视为“访问”我的域名,从而启用Cookie加载。
或者,第三方网站可以在我的网站上打开一个新选项卡,该选项卡会在加载时立即关闭。 然而,我预计这会是一个不太理想的用户体验,所以不希望走这条路。
最重要的将是“发布到隐藏的iframe”技巧(第三方页面在隐藏的iframe中发布到我的域名),但是作为SO问题表明该技巧不再适用。
这些可行的解决方案之一,还是苹果阻止了这些获取会话cookie的方法? 有没有更好的解决方案,我没有考虑?
2)有没有一种方法来设置与接受cookie政策WkWebViews
一样可以用做UiWebViews
? 我对StackOverflow的搜索建议不要,但我阅读的答案可能基于较旧版本的iOS(该应用需要iOS 9+)。
如果WkWebViews
没有应用程序代码解决方案,移动Safari的解决方案是否也可以与WkWebViews
一起WkWebViews
?
我刚刚有一个类似的问题。 我有一个WkWebView加载我的Web应用程序,该应用程序具有从特定服务器加载登录屏幕的iframe。 登录页面会抱怨iframe不允许使用cookie。
当我直接在web视图中加载登录页面时,它会起作用,并且当我再次在iframe内测试它时,它也会好奇地开始工作。
我发现的最好的解释是,如果web视图至少直接加载了iframe的域,那么只允许cookie保存在iframe中。 知道这一点,我能够实施一种解决方法。
通过简单地使用webview ping登录页面,我使用WKNavigationDelegate来等待,直到我开始从服务器接收一些数据。 一旦发生这种情况,我使Web视图加载包含iframe的页面。 现在,iframe可以持续加载登录屏幕。
链接地址: http://www.djcxy.com/p/49663.html上一篇: Enable session cookies for iframe in page in WkWebView / mobile Safari