当前位置:  开发笔记 > 编程语言 > 正文

iPhone xcode应用程序可以读取以前由Safari Mobile存储的cookie吗?

如何解决《iPhonexcode应用程序可以读取以前由SafariMobile存储的cookie吗?》经验,为你挑选了4个好方法。

iPhone应用程序可以读取以前由Safari Mobile存储的cookie吗?



1> Marco..:

要真正回答你的问题:

没有.

SDK应用无法访问Mobile Safari的Cookie.每个SDK应用程序都有自己的WebKit缓存和cookie存储,因此虽然cookie将保留在同一个应用程序中,但它们不能在应用程序之间访问.



2> Liam Ferris..:

从iOS 9开始,这是可能的!

使用sfSafariViewController.

您需要设置:

应用中的自定义网址方案,用于接收Cookie数据.

您从中获取Cookie的网站需要实施特定于您应用的自定义网址方案的API,以重定向回您的应用.

你可以克隆这个具有完整工作演示的repo.

希望这可以帮助,

利亚姆



3> Gary Rudolph..:

如果您可以访问服务器URL,实际上有一种有趣的方式.

    在您的应用中,使用移动版Safari启动服务器网址.

    目标服务器URL读取cookie并重定向回特定于应用程序的URL(myapp:// cookie = 123)

    然后切换回应用程序,您可以从URL处理程序中读取该值

这有点hacky,因为该应用程序将切换移动Safari,然后立即切换回应用程序.但是,这是可能的.



4> JosephH..:

请注意,在iOS 8上,您可能更好地使用Safari密码共享来解决导致此问题的一些用例.

这不是直接可行的,但通过网站的合作,这是可能的.

为了澄清,用户案例是Objective C应用程序想要读取由移动safari中的网站设置的cookie的值.(特别是UIWebView没有参与设置cookie)

你的应用应该这样做:

    使用[[UIApplication sharedApplication] openURL:url]启动移动safari;

    URL应该是特殊的,例如.http://yourwebsite.com/give-ios-app-the-cookie

    在您的网站上,当该网址启动时,请向您的-app-url-scheme发出重定向:cookievalue =(例如,angrybirds:cookievalue = hh4523523sapdfa)

    当你的app委托收到 - (BOOL)应用程序:(UIApplication*)应用程序openURL:(NSURL*)url sourceApplication:(NSString*)sourceApplication annotation:(id)annotation处理url获取cookie值

请注意,您不应该在应用程序启动时自动执行此操作 - 用户将看到转移到Mobile Safari并返回,这不是一个良好的用户体验,Apple将拒绝您的应用程序(Apple也认为这是"上传用户的个人数据"没有事先同意的服务器").最好是回应用户,关注用户体验 - 例如.等待用户点击"登录"按钮,然后执行此操作,如果用户未登录您的网站,http://yourwebsite.com/give-ios-app-the-cookie应该向用户显示登录信息野生动物园内的屏幕.如果用户已登录,您可以在重定向用户之前在Safari中短暂显示"自动登录..."屏幕一秒或两秒.

当然没有办法让它与hotmail/gmail/etc一起使用 - 它需要是你自己的网站.

对于移动safari和iOS中的应用程序,可以使用Unique Identifier来建议这种方法.

推荐阅读
大大炮
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有