- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我的应用程序中有一个非常简单的 WebView,它显示“欢迎”对话框。
我发送服务器的语言来响应,如下所示:
Map<String, String> noCacheHeaders = new HashMap<String, String>(2);
noCacheHeaders.put("Pragma", "no-cache");
noCacheHeaders.put("Cache-Control", "no-cache");
noCacheHeaders.put("Accept-Language", Locale.getDefault().toString());
mWebView.loadUrl("www.fake.com", noCacheHeaders);
这工作正常 - 但是,当我更改设备语言时,我希望 WebView
语言也更改,我可以看到 "Accept-Language"
在调试时正确更改,但 WebView 中的内容没有更改。我一直在寻找停止缓存的方法,如下所述。它们都不具有在语言更改后使网站加载不同的效果。
为确保服务器不是缓存问题,我确保在清除“应用程序数据”并重新启动后 WebView 内容发生变化。该应用程序正在存储 WebView 数据的非常确凿的证据。
因此,我遵循了下面列出的许多不同建议。没有一个真正改变我的 WebView
的内容:
来自 here导致崩溃:
mWebView.clearCache(true);
mContext.deleteDatabase("webview.db");
mContext.deleteDatabase("webviewCache.db");
仅此而已(在 loadURL 之前、之后和 onProgress=100):
mWebView.clearCache(true);
来自 here :
mWebView.getSettings().setAppCacheMaxSize(0);
我也试过这个:
mWebView.getSettings().setAppCacheEnabled(false);
所有结果都相同。当我的 WebView 将设备语言从德语切换到英语时,仍然保留德语网站内容。
这里是所有的代码:
Map<String, String> noCacheHeaders = new HashMap<String, String>(2);
noCacheHeaders.put("Pragma", "no-cache");
noCacheHeaders.put("Cache-Control", "no-cache");
noCacheHeaders.put("Accept-Language", Locale.getDefault().toString());
mWebView.getSettings().setAppCacheEnabled(false);
mWebView.clearCache(true);
mWebView.getSettings().setAppCacheMaxSize(0);
mWebView.setWebChromeClient(new WebChromeClient() {
public void onProgressChanged(WebView view, int progress) {
mProgress.setProgress(progress);
try {
getActivity().setProgress(progress);
if(progress == 100) {
mProgress.setVisibility(View.GONE);
mWebView.clearCache(true);
}
} catch(Exception e) {
e.printStackTrace();
}
}
});
mWebView.loadUrl("www.fake.com", noCacheHeaders);
mWebView.clearCache(true);
可重复的步骤:
最佳答案
CookieSyncManager.createInstance(this);
CookieManager cookieManager = CookieManager.getInstance();
cookieManager.removeAllCookie();
关于android - 清除 WebView 缓存的 101 种方法 - 所有这些都不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13009534/
今天有小伙伴给我留言问到,try{...}catch(){...}是什么意思?它用来干什么? 简单的说 他们是用来捕获异常的 下面我们通过一个例子来详细讲解下
我正在努力提高网站的可访问性,但我不知道如何在页脚中标记社交媒体链接列表。这些链接指向我在 facecook、twitter 等上的帐户。我不想用 role="navigation" 标记这些链接,因
说现在是 6 点,我有一个 Timer 并在 10 点安排了一个 TimerTask。之后,System DateTime 被其他服务(例如 ntp)调整为 9 点钟。我仍然希望我的 TimerTas
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
我就废话不多说了,大家还是直接看代码吧~ ? 1
Maven系列1 1.什么是Maven? Maven是一个项目管理工具,它包含了一个对象模型。一组标准集合,一个依赖管理系统。和用来运行定义在生命周期阶段中插件目标和逻辑。 核心功能 Mav
我是一名优秀的程序员,十分优秀!