web-dev-qa-db-ja.com

Cordovaアプリでユーザーエージェントを設定する方法

Cordovaアプリでユーザーエージェントを設定するにはどうすればよいですか? VS2015でCordovaアプリを作成していますが、他のソースからデータをダウンロードする必要があります。このソースはxmlでデータを返しますが、ユーザーエージェントがモバイルの場合、このソースリダイレクトはモバイルサイトを行います。ユーザーエージェントをデスクトップブラウザに変更する必要があります。データソースは私のものではなく、変更することはできません。

11
btf89

使用している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);

}
14
BBios

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()

6
Alin Pandichi