gpt4 book ai didi

android - 无需修改 cordova 库的自定义用户代理字符串或 header

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:01:13 26 4
gpt4 key购买 nike

我有一个与 ASP.NET MVC 网络应用程序交互的 Android Phonegap/Cordova 应用程序。我正在尝试检测服务器端网页是从浏览器加载还是从我的 Phonegap/Cordova 应用加载。

我考虑过几种方法:

  1. 更改用户代理字符串。我找到了 this stackoverflow link描述了一种使该工作起作用的方法。不幸的是,它对我不起作用。请求对象没有自定义用户代理字符串。
  2. 包含自定义 header 值。这可以通过修改 cordova 库来完成(请参阅 this stackoverflow link 。)但是,修改库通常不是一个好主意,因为它在将来会成为维护问题。 (更新:此方法在第一次请求后不起作用。)
  3. 在加载第一页时向查询字符串添加一些特殊内容。然后可以设置 cookie。与简单的 header 更改相比,这是一种丑陋的解决方案。

我在更改用户代理字符串时做错了吗?或者是否有其他方法可以实现此目的?

最佳答案

因此,对于 Cordova 5.1.1 及其平台版本 Android 4.0.2(我目前使用 Cordova 5.1.1 时开箱即用的内容),这些答案不再有效。

经过一番艰难的摸索,上述版本的解决方案如下:

在由 cordova 默认创建并扩展 CordovaActivity 的常用 MainActivity.java 中,覆盖 makeWebViewEngine 方法:

@Override
protected CordovaWebViewEngine makeWebViewEngine() {
CordovaWebViewEngine cordovaWebViewEngine = super.makeWebViewEngine();
WebSettings settings = ((SystemWebView) ((SystemWebViewEngine) cordovaWebViewEngine).getView()).getSettings();
settings.setUserAgentString("MreaderMobile App / Android");
return cordovaWebViewEngine;
}

将来,当他们升级 Android 平台的版本时,这应该更容易通过 config.xml 完成,但这不是 ATM 的选项,正如我在错误修复线程 CB-8960 上评论的那样

关于android - 无需修改 cordova 库的自定义用户代理字符串或 header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14574248/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com