Come posso impostare l'agente utente nell'app Cordova? Scrivo l'app Cordova in VS 2015 e ho bisogno di scaricare i dati da un'altra fonte. Questa fonte restituisce i dati in xml ma quando User Agent è mobile, questo reindirizzamento di origine fa sito mobile. Ho bisogno di cambiare User Agent sul browser desktop. La fonte dei dati non è mia, non può cambiarla.Come posso impostare l'agente utente nell'app Cordova
risposta
utilizzare un plugin come https://github.com/LouisT/cordova-useragent
Per installare il plugin, utilizzare il Cordova CLI e immettere le seguenti: Cordova plug aggiungere https://github.com/LouisT/cordova-useragent
Per impostare l'User-Agent: UserAgent.set (Provenienza)
Per ottenere il vostro attuale User-Agent: UserAgent.get (function (UA) {})
Per impostare l'User-Agent di nuovo al difetto: UserAgent.reset()
Dipende da quale versione di Cordova-Android e Cordova-IO che si sta utilizzando.
È possibile controllare le versioni della piattaforma Cordova eseguendo cordova platform list
Se si utilizza 4.0 e versioni successive versioni, una per iOS e Android è possibile impostare in config.xml come indicato nella documentazione Cordova here
<preference name="OverrideUserAgent" value="Mozilla/5.0 My Browser" />
Se si utilizza 4.0 e sotto, è necessario impostarli in codice nativo come di seguito. (Questo codice mostra come aggiungere e può essere modificato in modo da sostituire completamente)
In iOS si può fare
In AppDelegate.m, metodo 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"]];
In Android si può fare
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);
}
Come posso usarlo? – btf89
Per supportare Cordova V7.0 utilizzare questo fork: https://github.com/jonas-m-/cordova-useragent –