【问题标题】:How to Enable Cookies in UIWebView for iOS Swift如何在 iOS Swift 的 UIWebView 中启用 Cookie
【发布时间】:2015-04-23 13:51:37
【问题描述】:

我有一个使用 Instagram 集成的应用。该应用程序已经在 App Store 上架了几个月,多个版本都运行良好。突然,我提交给苹果的最新版本被拒绝了,因为苹果不喜欢为用户登录 Instagram 启动 Safari 的事实。正如他们所说,他们关心用户体验。

问题是我需要请求访问令牌,这就是我知道必须完成的方式。由于我的应用程序被拒绝,我不可能是唯一一个可能面临这个问题的人,所以我想我应该问一下。有没有人知道其他一些方法,也许我不知道您可以在不启动 Safari 的情况下验证用户 Instagram 并获得所需的访问令牌?

编辑#1:我能想到的唯一其他选择是在我的应用程序中使用 UIWebView 来打开 Instagram 身份验证过程。我试过这个,它似乎很慢,我的应用程序的回调过程似乎没有启动。所以我不知道我是不是做错了什么。

编辑#2:对 Instagram 登录为什么在我的 UIWebView 中不起作用进行更多研究,这似乎与 UIWebView 处理 Cookie 的方式有关,显然它无法识别 Cookie 或类似的东西。我仍然不知道该怎么做才能解决这个问题,所以如果有人有解决方案,请提供。

【问题讨论】:

    标签: ios swift cookies oauth uiwebview


    【解决方案1】:

    看起来this 可以帮助您。你没有提供很多关于你的应用程序的信息,所以我想不出有什么开箱即用的东西,但请尝试查看Instagram iPhone Hooks,看看你是否可以在用户执行某项操作时使用它们来触发登录。

    【讨论】:

    • 我已经这样做了。这并不能真正回答这个问题。我的应用程序用户 Instagram Hooks 已经可以做各种各样的事情了。我在询问对用户进行身份验证并接收 instagram 所需的访问令牌。
    【解决方案2】:

    我确信这可以稍微优化一下,我可能不需要 for 循环。但无论哪种方式,我已经在这个问题上花了将近一天的时间,只是不想再碰它了,因为我终于能够在加载 UIWebView 之前通过执行以下操作来让它工作:

    var req = NSURLRequest(URL: NSURL(string: urlString)!)
    var cookies = NSHTTPCookieStorage.sharedHTTPCookieStorage().cookies as! [NSHTTPCookie]
    
    var reqCookies:[AnyObject] = []
    
    for aCookie in cookies {
    
        reqCookies += [aCookie]
    
    }
    
    var headers = NSHTTPCookie.requestHeaderFieldsWithCookies(reqCookies)
    
    self.webView.loadRequest(req)
    

    【讨论】:

    • 你在哪里使用了标题?
    猜你喜欢
    • 1970-01-01
    • 2012-04-05
    • 2015-02-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多