与Safari同步 - SFSafariViewController的扩展

时间:2017-08-12 17:27:13

标签: ios swift safari sfsafariviewcontroller sfauthenticationsession

我知道SFSafariViewController有私有cookie存储和其他实现。但是,我知道我们可以为每个(每个本机系统)Swift类编写一个扩展。 我需要与本机Safari共享Cookie,或者通过我的应用程序打开Safari并提供一些标头请求。至少,如何创建API来获取/设置cookie?

1 个答案:

答案 0 :(得分:3)

  1. 在iOS> = 11中已禁用SFSafariVC与本机Safari之间的Cookie共享。
  2.   

    在WWDC,Apple announced a change在Safari视图控制器中使用iOS 11的行为将不再在Safari View Controller的实例之间共享存储的数据(Cookie,本地存储等)。我们已经在内部确认了测试版本,这似乎是分支机构的independently confirmed

         
        

    来自AppAuth-iOS'repo:user whitehatguy

      
    1. SFSafariVC的唯一API是为给定的URL创建新实例。您无法设置或修改Cookie。
    2. 如果您需要执行自定义代码,请查看WKWebView(iOS> = 8)/ UIWebView(iOS< 8)。有用的答案:Getting cookies in WKWebView

      创建

      SFAuthenticationSession以允许SSO / OAuth身份验证流程,该流程与本机Safari共享Cookie,但开发人员无法直接访问。

        

      管理在Safari和应用程序之间共享一次性Web服务登录以及Cookie和网站数据的类,该类还可用于自动登录其他相关应用程序。

           

      您将使用SFAuthenticationSession的两种情况是:

           
          
      • 使用身份验证协议(例如OAuth)登录第三方的服务。此选项适用于社交网络应用程序。
      •   
      • 为应用程序提供单点登录(SSO)体验。此选项适用于在同一设备上安装了许多应用程序的企业公司。
      •   
           
          

      Apple的SFAuthenticationSession文档