android - Oreo - 无法通过 WebView 中的 setUserAgentString 设置新值
问题描述
我在运行 API 27 (8.1.0) 的设备中的 WebView 中遇到问题。
我在 userAgentString 中传递了我的参数,php 页面根据该参数加载适当的数据。当我第一次打开 WebView 时,它运行良好。
但是,每当我在第一次之后打开 WebView 时(每次加载时我都会调用 setUserAgentString,并使用新值),它会保留 userAgentString 的旧值,因此不会加载正确的数据。无论我是在同一个活动中并重新使用同一个 WebView,还是移动到使用新 WebView 实例的不同活动,都会发生这种情况。
以下设备给出了这种奇怪的行为 -
- 谷歌 Pixel 2XL,版本 8.1.0
- 小米米 A1,版本 8.1.0
...并且 webview 在以下设备上运行良好,没有显示这种行为 -
- 三星 GALAXY Tab SM-T825,版本 8.0.0
- 摩托 G4,版本 7.0.0
- HTC Desire 526,版本 4.4.2
我认为这可能与 Android Webview 实现如何更改为 Oreo 中的 Chrome 有关。
但是,无论我在开发人员设置中设置为“Webview 实现”如何,行为都没有改变,这意味着这可能不是原因。
此外,只有当我清除数据或进行全新安装时,才会重置 userAgentString 值。
我已经阅读了数十篇关于 SO 的帖子,并尝试了各种与 WebView 和 WebSettings 相关的方法,但我还没有设法找到解决方案。
我在这里想念什么?
解决方案
我最近遇到了这个问题,问题是该设备有一个过时的 Chrome WebView 框架。只需通过 Play 商店更新它,问题就会解决。
推荐阅读
- javascript - (JS 事件委托)如何删除目标元素?
- asp.net - 调用 microsoft graph api 时,出现异常 AADB2C90086:不支持提供的 grant_type [client_credentials]
- excel - 在 VBA excel 中合并两个 Worksheet_Change 事件
- sql - 如何根据另一个表中的索引序列对列中的名称进行排序?
- python - Python 正则表达式匹配数字但忽略其中包含数字的单词(即 N95 和 3D)
- database - 访问指定数据以显示在网页上
- php - 来自表单未定义数组错误的 PHP $_GET
- sql - Bigquery SQL 提取字符串左侧的文本
- ios - 如何将字体添加到 iOS 应用程序,以便在设备上全局安装?
- vb.net - 从 Visual Studio 项目之间复制数据源