Cordovaアプリでユーザーエージェントを設定するにはどうすればよいですか? VS2015でCordovaアプリを作成していますが、他のソースからデータをダウンロードする必要があります。このソースはxmlでデータを返しますが、ユーザーエージェントがモバイルの場合、このソースリダイレクトはモバイルサイトを行います。ユーザーエージェントをデスクトップブラウザに変更する必要があります。データソースは私のものではなく、変更することはできません。
使用しているcordova-Androidとcordova-iosのバージョンによって異なります。
cordova platform list
を実行すると、プラットフォームのコルドバのバージョンを確認できます。
IOSとAndroidの両方で4.0以降のバージョンを使用している場合は、cordovaのドキュメントに記載されているようにconfig.xmlで設定できます ここ
<preference name="OverrideUserAgent" value="Mozilla/5.0 My Browser" />
4.0以下を使用している場合は、以下のようにネイティブコードで設定する必要があります。 (このコードは追加する方法を示しており、完全に置き換えるように変更できます)
IOSでは次のことができます
AppDelegate.mで、didfinishlaunchingwithoptionsメソッド
UIWebView* sampleWebView = [[UIWebView alloc] initWithFrame:CGRectZero];
NSString* originalUserAgent = [sampleWebView stringByEvaluatingJavaScriptFromString:@"navigator.userAgent"];
self.viewController.baseUserAgent = [NSString stringWithFormat:@"%@ customAgent/%@ customAgent/%@",
originalUserAgent,CDV_VERSION,
[[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleShortVersionString"]];
Androidでできます
settings = webView.getSettings();
String userAgent = settings.getUserAgentString();
if (!settings.getUserAgentString().contains("customAgent")) {
PackageManager packageManager = this.cordova.getActivity().getPackageManager();
double versionCode;
try {
versionCode = packageManager.getPackageInfo(this.cordova.getActivity().getPackageName(), 0).versionCode;
} catch (PackageManager.NameNotFoundException e) {
versionCode = 1.0;
}
userAgent += " customAgent/" + CordovaWebView.CORDOVA_VERSION + " customAgent/" + versionCode + " (233)";
settings.setUserAgentString(userAgent);
}
https://github.com/LouisT/cordova-useragent などのプラグインを使用します
プラグインをインストールするには、Cordova CLIを使用して、次のように入力します。cordovaplugin add https://github.com/LouisT/cordova-useragent
User-Agentを設定するには:UserAgent.set(useragent)
現在のユーザーエージェントを取得するには:UserAgent.get(function(ua){})
User-Agentをデフォルトに戻すには:UserAgent.reset()