2015-08-17 14 views
8

Jak ustawić agenta użytkownika w aplikacji Cordova? Piszę aplikację Cordova w VS 2015 i potrzebuję danych do pobrania z innego źródła. Te źródła zwracają dane w formacie xml, ale gdy agent użytkownika jest mobilny, to przekierowanie źródła do strony mobilnej. Potrzebuję zmienić agenta użytkownika na przeglądarkę komputerową. Źródło danych nie jest moje, nie można go zmienić.Jak ustawić agenta użytkownika w aplikacji Cordova

Odpowiedz

6

pomocą wtyczki takie jak https://github.com/LouisT/cordova-useragent

Aby zainstalować wtyczkę, użyj Cordova CLI i wprowadź następujące informacje: Cordova plugin dodać https://github.com/LouisT/cordova-useragent

Aby ustawić User-agent: UserAgent.set (useragent)

Aby otrzymać aktualny User-agent: UserAgent.get (function (uA) {})

Aby ustawić User-Agent z powrotem do domyślnego: UserAgent.reset()

+1

Jak mogę go używać? – btf89

+1

Do obsługi Cordova V7.0 użyj tego widelca: https://github.com/jonas-m-/cordova-useragent –

11

To zależy od wersji Cordova Androida i iOS-Cordova używasz.

można sprawdzić wersje platformy Cordova uruchamiając cordova platform list

Jeśli używasz 4.0 i nowsze wersje zarówno dla iOS i Androida można je ustawić w config.xml jak podano w dokumentacji Cordova here

<preference name="OverrideUserAgent" value="Mozilla/5.0 My Browser" />

Jeśli używasz 4.0 i poniżej, musisz ustawić je w natywnym kodzie, jak poniżej. (Kod ten pokazuje jak dołączyć i mogą być modyfikowane, aby całkowicie zastąpić)

w iOS można zrobić

W AppDelegate.m, metodę 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"]]; 

W Androidzie można zrobić

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

} 
Powiązane problemy