You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android Fragment中WebView清除缓存后仍保留旧JavaScript Header的问题求助

Android Fragment中WebView清除缓存后仍保留旧JavaScript Header的问题求助

嘿,各位Android开发的朋友,我最近在做项目里的ChatBotWebFragment时碰到个棘手的问题,想请教下大家的解决思路。

这个Fragment是用来加载网页版聊天机器人的,核心需求是:根据用户处于未登录还是已登录的状态,通过JavaScript给网页端传递不同的头部信息。但实际测试时发现,WebView好像“记仇”一样,总是复用之前交互留下的旧Header数据——哪怕我已经手动清除了缓存,甚至重新注入新的参数,聊天机器人那边收到的还是旧的Header,导致状态判断完全错误。

具体的场景拆解:

  • 未登录阶段:用户还没登录时,我给WebView注入未登录状态对应的Header,这时候网页端能正常识别状态,逻辑没问题
  • 登录后阶段:用户登录成功返回这个Fragment,我做了一系列操作试图重置WebView,但网页端接收到的依旧是未登录时的旧数据

我已经尝试过的方案都没起效:

  • 调用webView.clearCache(true)清除磁盘和内存缓存
  • 调用webView.clearHistory()清空浏览历史
  • 在Fragment的onCreateView里重新创建WebView实例,而不是复用旧的
  • 每次进入Fragment时都重新执行webView.evaluateJavascript(),确保注入的是最新的Header参数

有没有哪位大佬遇到过类似的坑?到底要怎么操作才能让WebView彻底丢弃旧的Header数据,完全使用我新传递的参数呢?麻烦给我指点下方向,谢谢啦!

内容来源于stack exchange

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.08 13:53:12