如何在UI Swift for iOS Swift中启用Cookie

时间:2015-04-23 13:51:37

标签: ios swift cookies oauth uiwebview

我有一个使用Instagram集成的应用程序。该应用程序已在App Store中使用了几个月,多个版本都运行正常。突然之间,我提交给Apple的最新版本被拒绝了,因为苹果并不喜欢Safari为用户登录Instagram而推出的事实。按照他们的说法,他们关心用户体验。

问题是我需要请求访问令牌,这就是我知道必须要做的事情。由于我的应用程序遭到拒绝,我不能成为唯一一个可能面对此问题的人,所以我想我应该问一下。有没有人知道其他方法或许我不知道你可以在不启动Safari的情况下验证用户Instagram并获得所需的访问令牌?

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

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

2 个答案:

答案 0 :(得分:0)

看起来this可以帮到你。你没有给你很多关于你的应用程序的信息,所以我不能想到框外的东西,但是试着查看Instagram iPhone Hooks并看看当用户做某事时你是否可以使用它们来触发登录

答案 1 :(得分:-1)

我确定可以稍微优化一下,我可能不需要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)