无法将 cookie 发送到 WebView 目标 C

Posted

技术标签:

【中文标题】无法将 cookie 发送到 WebView 目标 C【英文标题】:Could not send cookies to WebView Objective C 【发布时间】:2017-01-03 06:21:49 【问题描述】:

我编写了以下代码,这是我从关于 SO 的问题中找到的。

我仍然很困惑,因为在做了所有这些之后我仍然无法访问我的 php 页面上的 cookie。

我在这里做错了什么?

- (void)viewDidLoad 

  [super viewDidLoad];

  UIWebView *webview=[[UIWebView alloc]initWithFrame:CGRectMake(0, 0, self.view.frame.size.width,self.view.frame.size.height)];

  NSString *url=@"http://mywebsite.com";
  NSURL *nsurl=[NSURL URLWithString:url];
  NSMutableURLRequest *nsrequest=[NSMutableURLRequest requestWithURL:nsurl];

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

  [cookieProperties setObject:[[NSDate date] dateByAddingTimeInterval:2629743] forKey:NSHTTPCookieExpires];

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

  [webview loadRequest:nsrequest];


【问题讨论】:

【参考方案1】:

使用它来设置你的对象:

    nsrequest.addValue(value: "testCookie", forHTTPHeaderField: NSHTTPCookieName)
etc...

抱歉,它在 Swift 3 中 ^^ 但你可以转换为 Obj-c

【讨论】:

【参考方案2】:

您已在“www.example.com/”上设置了 cookie,但您正在尝试加载“my website.com” - 将 NSHTTPCookieDomain 和 NSHTTPCookieOriginURL 更改为“mywebsite.com”或尝试加载“www. example.com”在您的请求中!

【讨论】:

我更改了网址,但忘记更改问题,仍然无法正常工作。 向我们展示您尝试读取 cookie 的代码...?

以上是关于无法将 cookie 发送到 WebView 目标 C的主要内容,如果未能解决你的问题,请参考以下文章

在iOS上反应Native WebView缺少会话cookie

如何将大量文本从 webview 发送到 objc?

将 cookie 设置为 WebView 控件

Android WebView保存Cookie登录

electron webview有办法获取到cookie吗

颤振flutter_webview_plugin错误[NSNull长度]:无法识别的选择器发送到ios上的实例