在我的应用程序中,我需要实现下一个功能:当用户登录应用程序时,它(应用程序)需要将某些网站的 cookie(或任何其他数据)保存到移动 Safari。目标是当用户下次在 Safari 中打开该网站时不再登录。
Documentation说它不能在 iOS 上使用 cookie 来完成。有人知道其他解决方案吗?实现所需的功能是使其“静默”地呈现给用户,而无需打开 Safari。
更新
是否可以从移动 Safari 访问应用程序数据并获得一些回调?例如,当用户浏览网站时,网站会向应用程序发送一些回调,并获取一些用户数据的响应。
最佳答案
老问题,但是您可以从您的应用程序中打开 Safari 到一个特殊的一次性 URL,该 URL 将用户带到您托管的页面,传递您从同一服务器上的 API 检索的 token ,然后使用页面验证 token 和设置曲奇饼?这样授权是在服务器上处理的,服务器可以在响应中设置 cookie。
您可以在您的应用程序中执行类似的操作
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"https://myhost.com/myhandler?token=PX2G16BWFKZBQWUKGF3BGRY2Z6BEJ7Z3PMO2GZ6S3R00JVWBVEO6VWBEXNK14IBJ5GKAY5EKBLAHNSAJ8"]];
然后 myhost.com/myhandler 的页面将读取并验证 token ,并在响应上设置 cookie,然后使 token 无效。您还可以添加 token 的使用时间限制。
关于ios - 在 iOS 中将应用程序中的 cookie 设置为 Safari,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33688712/