【问题标题】:Change PhoneGap / Cordova User-Agent for AJAX更改 AJAX 的 PhoneGap / Cordova 用户代理
【发布时间】:2013-01-18 19:39:43
【问题描述】:

我正在使用 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 in onCreate-方法。

【问题讨论】:

  • 这对我不起作用。有什么想法吗?
  • 您可以为自己的问题添加答案 - 您不必将其编辑到问题本身。如果您再次编辑并这样做会更整洁。
  • @ninov 我正在使用 Cordova,但我没有任何 .java 文件。我们可以从javascript调用它吗?到 2017 年它仍然有效吗?

标签: android jquery cordova user-agent


【解决方案1】:

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

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

这对我有用。

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

【讨论】:

    【解决方案2】:

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

    它也遵循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'
     },
    })
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多