8

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

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

我怎样才能做到这一点?我已经看到了 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.javainonCreate方法。

4

2 回答 2

10

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

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

这对我有用。

查看更多设置:http: //developer.android.com/reference/android/webkit/WebSettings.html

于 2013-11-20T17:01:54.923 回答
1

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

它还遵循 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'
 },
})
于 2015-10-15T20:48:41.127 回答