我正在使用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
- 方法。
答案 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'
},
})