gpt4 book ai didi

android - 有什么方法可以禁用通过变形杆菌膨胀的webview中的缓存

转载 作者:搜寻专家 更新时间:2023-11-01 09:37:15 26 4
gpt4 key购买 nike

需要禁用通过 Proteus 膨胀的 WebView 上的缓存.

Are there any attributes on the WebView which can be used to disable it?

如果使用 findViewById(R.id.something) 使用预编译的 XML 布局扩充 View 并在其上调用以下方法,我们可以正常找到该 View 。

WebView wv = parent.findViewById(R.id.webview);
WebSettings ws = wv.getSettings();

ws.setAppCacheEnabled(false);
ws.setCacheMode(WebSettings.LOAD_NO_CACHE)

But since proteus inflates layouts using JSON from the server I cannot find the view like this and the solution would not scale for multiple WeViews.

最佳答案

您可以为 WebView 注册一个自定义属性处理程序,比如 disableCache 并解决您的问题。

ProteusBuilder builder;
builder.register("WebView, "disableCache", new BooleanAttributeProcessor<WebView>() {
@Override
public void setBoolean(WebView view, boolean value) {
WebSettings ws = view.getSettings();
if (value) {
ws.setAppCacheEnabled(value);
ws.setCacheMode(WebSettings.LOAD_NO_CACHE);
}
}
});
Proteus proteus = builder.build();
ProteusContext context = proteus.createContextBuilder(context).build();

layoutInflater = context.getInflater();

使用 layoutInflater 来膨胀您的布局,然后在您的布局中根据需要将属性设置为 truefalse

{
"type": "WebView",
"disableCache": "true"
}

您可以使用您的 Proteus 实例注册自定义属性处理程序,它将开始工作。好处是您可以根据您的要求切换标志,并避免为所有通过 proteus 膨胀的 Web View 禁用硬编码缓存。

关于android - 有什么方法可以禁用通过变形杆菌膨胀的webview中的缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42113623/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com