Home » Android » android – Change PhoneGap / Cordova User-Agent for AJAX

android – Change PhoneGap / Cordova User-Agent for AJAX

Posted by: admin June 15, 2020 Leave a comment

Questions:

I’m using phonegap / cordova for developing an Android app.

The app has to read files on a remote server. Therefore I’m using AJAX (jQuery).
The problem is: The remote server redirects all connections from mobile devices to a mobile version, which doesn’t work for me, so I have to change the User Agent to a desktop browser.

How can I do this? I’ve seen a solution for iOS. Is something like this possible for Android?


Edit:
I found a solution myself:

Just add

WebSettings w = this.appView.getSettings();      
w.setUserAgentString("Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.835.202 Safari/535.1");

to /src/com/a/b/c.java in onCreate-method.

How to&Answers:

put this in your onCreate method: (after super.init();)

super.appView.getSettings().setUserAgentString("Your own agent string");

this worked for me.

See for more settings: http://developer.android.com/reference/android/webkit/WebSettings.html

Answer:

If you’re looking for a more powerful http client for cordova that allows changing the user agent, or any header in that matter, try out https://github.com/aporat/cordova-plugin-fetch. it wraps around well tested native networking libraries (AFNetworking 2 on ios, and OKHttp on android).

it also follows the window.fetch, so you could use cordovaFetch on the simulators and devices, while testing on the browser with fetch.js.

Just install the plugin with

cordova plugin add https://github.com/aporat/cordova-plugin-fetch.git

and include the user agent header in any request you made.

cordovaFetch('/users.json', {
  method : 'GET',
  headers: {
   'User-Agent': 'your user agent'
 },
})