代码之家  ›  专栏  ›  技术社区  ›  Mitch Cohen

NSURLConnection上的sharedContainerIdentifier?

  •  1
  • Mitch Cohen  · 技术社区  · 3 年前

    我正在为iOS应用程序添加Widget扩展。Widget需要进行网络调用,共享主应用程序登录过程中设置的cookie。这个 NSURLConfiguration s sharedContainerIdentifier 非常适合这个。由于我们已经在使用应用程序组,这很容易实现。

    主应用程序大部分处于打开状态 NSURLSession ,但有一些旧的 NSURLConnection 密码是否存在可使用的机制 NSURL连接 用一个 sharedContainerIdentifier ?

    0 回复  |  直到 3 年前
        1
  •  0
  •   dgatwood    3 年前

    我可以想出三种方法:

    1. 您可以使用 +[NSHTTPCookieStorage sharedCookieStorageForGroupContainerIdentifier:] 要获得共享的cookie存储,请使用自定义的 NSURLProtocol 在共享(全局)协议命名空间中注册的子层。在该自定义协议中,从响应中提取任何新的cookie,并将任何匹配的cookie注入请求中。然后标记请求(这样就不会处理它们两次),并将它们传递回 NSURLConnection 机械

    2. 您可以执行上述操作,但不用管理共享cookie罐中的cookie,而是使用 NSURLSession 以在使用共享容器标识符配置的会话中发出请求。

    3. 你可以嗖嗖地喝 NSURL连接 方法,并将其替换为 NSURLSession 电话。

    这些方法中没有一种可能比使代码现代化并将其转换为使用更容易 NSURLSession 除非涉及第三方闭源代码库。