我在运行 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 相关的方法,但我还没有设法找到解决方案。
我在这里想念什么?