我有一个用于收集公共注册的Kiosk应用程序,注册页面是一个显示在受控WebView中的公共网站。我需要从WebView缓存中清除所有用户的个人数据,但使用Documented过程似乎无法做到这一点。
这是我的WebView标记:
<div><webview id="wv" style="width:100%; height:95%;position:absolute;margin:0px;padding:0px;" partition="extraContent"></webview></div>
以下是我用来清除缓存和存储的代码:
var webview = document.getElementById("wv");
var options = {
'since':1000000000
};
var caches = {
"appcache": true,
"cache": true,
"cookies": true,
"fileSystems": true,
"indexedDB": true,
"localStorage": true,
"webSQL": true
};
webview.clearData(options, caches, function() {
webview.terminate();
$("webview").remove();
appendWebview();
});
当clearData
没有完成这项工作时,我开始完全终止视图并添加一个具有相同标记的新视图。然而,当新的WebView加载时,我仍然可以看到个人详细信息。为什么会发生这种情况?如何删除数据?
答案 0 :(得分:0)
目前似乎不可能做我想做的事情(认真吗?): Similar SO Question
但是我的特定用例有一个解决方法。我可以在普通视图中显示本地内容,甚至可以在自己的webview中显示本地内容,然后对显示Web内容的Web视图使用唯一的虚拟分区ID。当会话结束时,我可以生成一个新的唯一分区ID,并使用它来启动一个新的webview,它将无法访问前一个的缓存。
对于其他有类似问题的人来说,这并不是我在这个平台上发现的唯一不可接受和错误的行为,在Chromium团队能够生产出更稳定的产品之前,应该避免严肃的项目。