Cómo configurar un encabezado personalizado para las requestes webView en react-native

Quiero poder detectar en mi server ruby ​​on rails que una request http ha venido de un componente webView en mi aplicación. La aplicación está utilizando react-native. En particular, quiero distinguir entre una request de la aplicación y una request del safari mobile que se ejecuta en un dispositivo ios.

He intentado configurar lo siguiente en el file 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]); 

y el resultado en la console es

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

Entonces el encabezado del cliente parece estar configurado. Sin embargo, cuando veo el encabezado de la request en mi aplicación ruby ​​on rails, no hay ningún signo del encabezado personalizado. Parece que mis cambios se sobrescriben en la ejecución de la aplicación react-native. Entonces, ¿dónde y cómo debo configurar el encabezado personalizado? También estoy interesado en hacer lo mismo para una versión de Android de la aplicación.

Intente agregar las siguientes líneas a AppDelegate.m para configurar el agente de usuario personalizado

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

Una respuesta más completa y la solución para Android se puede encontrar aquí .

Dudo que puedas hacer esto. Si no está expuesto como prop puede configurarlo en el componente WebView React Native proporciona, entonces no creo que pueda hacerlo.

Como un lado, el componente WebView en React Native no es tan increíble. En el lado iOS, envuelve UIWebView, pero para iOS 8 o más hay WkWebView, que es más compatible con los estándares y considerablemente más rápido que UIWebView.

http://blog.initlabs.com/post/100113463211/wkwebview-vs-uiwebview

Actualmente estoy trabajando en una aplicación que hace un amplio uso de las visiones web, y terminamos escribiendo nuestros propios componentes nativos para iOS y Android. Esto es más fácil de lo que parece, especialmente si ya tienes experiencia de desarrollo nativa. Por lo tanto, si está haciendo mucho con las vistas web y el componente listo para usar no le da lo que desea (y desea los beneficios adicionales de WkWebView vs. UIWebView), yo consideraría rodar el suyo.