2016-04-22 9 views
3

私のRubyのサーバー側で、httpリクエストがアプリケーションのwebViewコンポーネントから来たことを検出できるようにします。アプリは反応ネイティブを使用しています。特に、私は、アプリからのリクエストと、iosデバイス上で動作するモバイルサファリからのリクエストとを区別したいと思います。レスポンスネイティブのWebViewリクエストのカスタムヘッダーを設定する方法

私は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; 
} 

あるので、顧客のヘッダが設定されているようです。しかし、私がRuby on Railsアプリケーションでリクエストヘッダを見ると、カスタムヘッダの兆候はありません。私の変更は、反応ネイティブのアプリケーションの実行で後者を上書きされているように見えます。だからどこでどのように私はカスタムヘッダーを設定する必要がありますか?私はまた、アプリのアンドロイド版で同じことをすることに興味がありますか?

答えて

3

てみてカスタムユーザーエージェントを設定するには、AppDelegate.mに以下の行を追加し

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

充実答えとAndroidのためのソリューションをhere見つけることができます。

0

あなたはこれを行うことができますか? React Nativeが提供するWebViewコンポーネントで設定できる小道具として公開されていない場合は、それを行うことはできません。

これ以外に、React NativeのWebViewコンポーネントはそれほど素晴らしいものではありません。 iOS側ではUIWebViewをラップしますが、iOS 8+ではWkWebViewがあります.WkWebViewは、標準に準拠し、UIWebViewよりもかなり高速です。

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

私は現在webviewsを多用し、アプリに取り組んでいます、そして我々は、iOSとAndroidのための私たち自身のネイティブコンポーネントを書いて巻き上げます。これは、特にネイティブな開発経験がある場合には、聞こえるほど簡単です。したがって、Webviewで多くのことをしていて、すぐに利用できるコンポーネントが必要なものを提供していない場合(WkWebView対UIWebViewの追加のメリットが必要な場合)、独自のロールを検討することになります。

関連する問題