我在iOS应用程序中有需要身份验证Cookie才能正确进行身份验证的Web视图.我正在寻找一种方法,可以在iOS应用程序的网络视图中设置cookie,而不必发出设置cookie的出站请求,因为我已经在客户端上有身份验证信息.

post个向我们展示了UIWebView cookie的存储位置.

现在,我正在加载一个隐藏的Web视图来发出出站请求,但我不希望必须发出设置简单cookie的外部请求.

推荐答案

是的,你可以做到的.首先,在application ationDidBecomeActive中添加此行

[[NSHTTPCookieStorage sharedHTTPCookieStorage] setCookieAcceptPolicy:NSHTTPCookieAcceptPolicyAlways];

CookieAcceptPolicy在应用程序之间共享,并且可以在您不知情的情况下进行更改,因此您需要确保每次运行应用程序时都拥有所需的接受策略.

然后,要设置Cookie,请执行以下操作:

NSMutableDictionary *cookieProperties = [NSMutableDictionary dictionary];
[cookieProperties setObject:@"testCookie" forKey:NSHTTPCookieName];
[cookieProperties setObject:@"someValue123456" forKey:NSHTTPCookieValue];
[cookieProperties setObject:@"www.example.com" forKey:NSHTTPCookieDomain];
[cookieProperties setObject:@"www.example.com" forKey:NSHTTPCookieOriginURL];
[cookieProperties setObject:@"/" forKey:NSHTTPCookiePath];
[cookieProperties setObject:@"0" forKey:NSHTTPCookieVersion];

// set expiration to one month from now or any NSDate of your choosing
// this makes the cookie sessionless and it will persist across web sessions and app launches
/// if you want the cookie to be destroyed when your app exits, don't set this
[cookieProperties setObject:[[NSDate date] dateByAddingTimeInterval:2629743] forKey:NSHTTPCookieExpires];

NSHTTPCookie *cookie = [NSHTTPCookie cookieWithProperties:cookieProperties];
[[NSHTTPCookieStorage sharedHTTPCookieStorage] setCookie:cookie];

此cookie的名称为testCookie,值为someValue123456,将与任何http请求一起发送到www.example.通用域名格式.

关于设置cookies 的一个大警告,请看我的问题!

NSHTTPCookieStorage state not saved on app exit. Any definitive knowledge/documentation out there?

Ios相关问答推荐

如何加密字符串使用AES. GCM在Dart和解密相同的Swift?

SwiftUI.从自定义视图修改器访问自定义视图子视图

在Android和iOS上从后台恢复应用程序后,inappwebview上出现白屏?

如何在iOS中以编程方式推送另一个页面?

SWIFT AVFoundation翻转相机功能不起作用

在SwiftUI中插入绘制重复形状

UITableViewCell编程约束问题

当文本为空时,具有垂直轴的SwiftUI文本字段不会与FirstTextBaseline对齐

Flutter 翼项目.升级到XCode 15.0.1`pod install`抛出错误FlutterMacOS.podspec.json 3.13.2的ParserError

如何在SwiftUI中将图像整合到文本标签中间?

错误地提取问题的答案选项

在左侧显示多行值时会出现 SwiftUI 错误,这会 destruct 堆栈中右侧的对齐方式

视图之间的 SwiftUI 过渡,没有过渡

Text() 正在添加额外的前导尾随填充 SwiftUI

XCode 14 Beta 中 NavigationStack 的正文渲染问题

SignalR 永远不会在 iOS 上使用 Xamarin Forms 启动

为什么 Safari 在使用 iOS 6 设备进行远程调试时显示No Inspectable Applications?

iOS - 确保在主线程上执行

使用 Xcode 的 All Exceptions 断点时忽略某些异常

如何在ios中生成UUID