更改用于AJAX的PhoneGap / Cordova用户代理

时间:2013-01-18 19:39:44

标签: android jquery cordova user-agent

我正在使用phonegap / cordova开发Android应用程序。

该应用必须读取远程服务器上的文件。因此我正在使用AJAX(jQuery)。 问题是:远程服务器将所有连接从移动设备重定向到移动版本,这对我不起作用,因此我必须将用户代理更改为桌面浏览器。

我该怎么做?我见过a solution for iOS。 Android有可能是这样吗?


修改 我自己找到了解决方案:

添加

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

/src/com/a/b/c.java中的onCreate - 方法。

2 个答案:

答案 0 :(得分:10)

将它放在你的onCreate方法中:(在super.init();之后)

super.appView.getSettings().setUserAgentString("Your own agent string");
这对我有用。

有关详情,请参阅:http://developer.android.com/reference/android/webkit/WebSettings.html

答案 1 :(得分:1)

如果您正在为cordova寻找更强大的http客户端,允许更改用户代理或任何标题,请尝试https://github.com/aporat/cordova-plugin-fetch。它包含经过良好测试的本机网络库(ios上的AFNetworking 2和android上的OKHttp。)

它也跟在window.fetch之后,因此您可以在模拟器和设备上使用cordovaFetch,同时使用fetch.js在浏览器上进行测试。

只需使用

安装插件即可

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

并在您提出的任何请求中包含用户代理标头。

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