如何在iOS Swift的UIWebView中启用Cookie



我有一个使用Instagram集成的应用程序。该应用程序已经在应用商店中使用了几个月,多个版本都运行良好。突然间,我提交给苹果的最新版本被拒绝了,因为苹果不喜欢Safari是为用户登录Instagram而推出的。正如他们所说,他们关心用户体验。

问题是我需要申请一个访问令牌,这就是我知道必须这样做的原因。由于我的应用程序被拒绝,我不是唯一一个可能面临这种情况的人,所以我想我应该问一下。有人知道其他方法吗?也许我不知道你可以在不启动Safari的情况下对用户的Instagram进行身份验证并获得所需的访问令牌?

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

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

看起来这对您有帮助。你没有提供太多关于你的应用程序的信息,所以我想不出什么开箱即用的东西,但试着查看Instagram iPhone挂钩,看看你是否可以在用户做某事时使用它们来触发登录。

我相信这可以优化一点,我可能不需要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)

最新更新