android-如何在react-native中为webView请求设置自定义标头

我希望能够在Rails服务器端的ruby上检测到http请求来自我应用程序中的webView组件.该应用程序正在使用本机.特别是,我想区分来自应用程序的请求和来自ios设备上运行的移动Safari的请求.

我尝试在AppDelegate.m文件中设置以下内容

  NSURL *url = [NSURL URLWithString:@"http://localhost:3000/signin"];
  NSMutableuRLRequest *request=[NSMutableuRLRequest requestWithURL:url cachePolicy:NSURLRequestReloadIgnoringCacheData timeoutInterval:60];
  [request addValue:@"GolfMentor" forHTTPHeaderField:@"User-Agent"];
  [request addValue:@"GolfMentor" forHTTPHeaderField:@"X-MY-CUSTOM-HEADER"];
  NSLog(@"%@", [request allHTTPHeaderFields]);

控制台中的输出

GolfMentor[63924:12437749] {
"User-Agent" = GolfMentor;
"X-MY-CUSTOM-HEADER" = GolfMentor;
}

因此,客户标头似乎已设置.但是,当我在Rails应用程序的ruby中查看请求标头时,没有自定义标头的迹象.看起来我的更改后来在react-native应用程序的执行中被覆盖.那么我应该在哪里以及如何设置自定义标题呢?我也有兴趣为该应用的android版本做同样的事情吗?

解决方法:

尝试将以下行添加到AppDelegate.m中以设置自定义用户代理

Nsstring *newAgent = @"GolfMentor";
NSDictionary *dictionnary = [[NSDictionary alloc] initWithObjectsAndKeys:newAgent, @"UserAgent", nil];
[[NSUserDefaults standardUserDefaults] registerDefaults:dictionnary];

可以找到更完整的答案和针对Android的解决方here.

相关文章

UITabBarController 是 iOS 中用于管理和显示选项卡界面的一...
UITableView的重用机制避免了频繁创建和销毁单元格的开销,使...
Objective-C中,类的实例变量(instance variables)和属性(...
从内存管理的角度来看,block可以作为方法的传入参数是因为b...
WKWebView 是 iOS 开发中用于显示网页内容的组件,它是在 iO...
OC中常用的多线程编程技术: 1. NSThread NSThread是Objecti...