【问题标题】:Cookie sharing between multiple WKWebViews多个 WKWebView 之间的 Cookie 共享
【发布时间】:2014-11-06 00:34:25
【问题描述】:

我在我的应用程序中创建了一些 WkWebViews,但是当为一个 webview 设置 cookie 时,它​​们不会在其他 webview 中生效(即其他 webviews 不会将相同的 cookie 传递回服务器)。如何让它们都使用相同的 cookie 存储?

【问题讨论】:

    标签: ios objective-c ios8 wkwebview


    【解决方案1】:

    通过对所有 webview 使用相同的 WKProcessPool 来实现此功能。

    首先在某处创建一个进程池一次

    processPool = [[WKProcessPool alloc] init];
    

    然后在创建 WKWebviews 时使用它。池必须在 init 方法中设置,而不是之后。

    WKWebViewConfiguration *config = [[WKWebViewConfiguration alloc] init];
    config.processPool = processPool;
    webview = [[WKWebView alloc] initWithFrame:frame configuration:config];
    

    【讨论】:

    • 谢谢。在我有混合应用程序的情况下,它确实有效。登录网页将 cookie 存储在单例进程池中,稍后在其他页面中它将从同一个单例进程池中获取 cookie(会话 ID、身份验证数据)。
    • 你知道吗,如果你同时加载两个,它会影响 WKWebView 的性能吗?
    • 在iOS10上,默认情况下,cookies是在多个WKWebView之间共享的。我已经在iOS10模拟器上验证过了,但不确定在iOS8/9上是否正确
    • @ikzjfr0 你确定你在说什么吗?我今天在 iOS 10 上尝试过,如果我想在 wkwebview 之间保持 cookie 共享,我需要共享池实例。
    • 如果用户重新启动应用程序,在这种情况下 processpool 对象再次初始化,那么 cookie 如何同步?
    猜你喜欢
    • 1970-01-01
    • 2017-04-08
    • 1970-01-01
    • 1970-01-01
    • 2017-05-14
    • 1970-01-01
    • 2012-09-04
    • 1970-01-01
    • 2021-09-18
    相关资源
    最近更新 更多