2015-08-17 14 views
8

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

6

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

+1

Come posso usarlo? – btf89

+1

Per supportare Cordova V7.0 utilizzare questo fork: https://github.com/jonas-m-/cordova-useragent –

11

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

} 
Problemi correlati