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
相关产品推荐
相关产品推荐

