11

私の Phonegap アプリケーションは、Phonegap API も使用するいくつかの外部サイトを参照できます。現在、使用しているプラ​​ットフォーム (Android、iOS など) に基づいて、条件付きで Phonegap JavaScript を含めています。ただし、Phonegap アプリケーションとモバイル デバイスの通常のブラウザーの違いはわかりません。Phonegap アプリのユーザー エージェントを変更して、サーバーにこれに関するヒントを与える方法はありますか?

これに対する iOS ソリューションに最も関心があります。

4

6 に答える 6

18

あなたがまだそのための簡単な解決策を探しているなら、これが私がそれを達成した方法です:

// Modify the user-agent
NSString* suffixUA = @" my nice user-agent suffix";
UIWebView* webView = [[UIWebView alloc] initWithFrame:CGRectZero]; 
NSString* defaultUA = [webView stringByEvaluatingJavaScriptFromString:@"navigator.userAgent"];
NSString* finalUA = [defaultUA stringByAppendingString:suffixUA];
NSDictionary *dictionary = [NSDictionary dictionaryWithObjectsAndKeys:finalUA, @"UserAgent", nil];
[[NSUserDefaults standardUserDefaults] registerDefaults:dictionary];

Phonegap (Cordova) サンプル アプリでは、これらの行をAppDelegate.mのdidFinishLaunchingWithOptionsメソッドに追加する必要があります。

私はこれを理解するために丸一日を費やしました!私はそれが他の人に役立つと確信しています。

于 2012-07-04T03:02:56.377 に答える
6

CB-2520が解決され、ユーザー エージェント文字列の変更を許可することが提案されました。MainViewController のbaseUserAgentプロパティを設定することで、これを実現できます。簡単なテストでは、 MainViewControllerが初期化された後に、 AppDelegate.mのdidFinishLaunchingWithOptionsメソッドに次を追加できます。

self.viewController.baseUserAgent = @"My Custom User Agent";

于 2014-12-30T20:01:53.480 に答える
3

ユーザー エージェントまたはヘッダーを変更できる、より強力な cordova 用の http クライアントを探している場合は、https://github.com/aporat/cordova-plugin-fetchを試してください。十分にテストされたネイティブ ネットワーク ライブラリ ( AFNetworking 2ios およびOKHttpandroid) をラップします。

また、window.fetch にも従うのでcordovaFetchfetch.js.

でプラグインをインストールするだけです

cordova plugin add https://github.com/aporat/cordova-plugin-fetch.git

作成したすべてのリクエストにユーザー エージェント ヘッダーを含めます。

cordovaFetch('/users.json', {
  method : 'GET',
  headers: {
   'User-Agent': 'your user agent'
 },
})
于 2015-10-22T14:47:33.677 に答える
0

この質問を参照してください:モバイル ブラウザーまたは PhoneGap アプリケーション間の検出

私は貢献しましたが、あなたに適した答えがたくさんあります。

于 2012-05-16T18:23:26.833 に答える