如何在 android webview 中仅加载 html(不加载 css、png、ico 等)?
Posted
技术标签:
【中文标题】如何在 android webview 中仅加载 html(不加载 css、png、ico 等)?【英文标题】:How to load only html(not load css,png,ico etc) in android webview? 【发布时间】:2020-10-13 20:24:07 【问题描述】:我正在尝试像这样使用 webview 和 javascriptInterface 开发 android 应用程序。
private static final String ENTRY_URL = "https://www.google.com";
mWebView.setWebViewClient(new WebViewClient()
...
@Override
public void onPageFinished(WebView view, String url)
if (url.equals(ENTRY_URL))
String keyword = "tistory";
String script = "javascript:function afterLoad() "
+ "document.getElementById('keyword').value = '" + keyword + "';"
+ "document.forms[0].setAttribute('onsubmit', 'window.Zeany.justDoIt(elements[0].value); return true;');"
+ ";"
+ "afterLoad();";
view.loadUrl(script);
当我调用方法 (mwebview.load("https://www.google.com")) 时,我只想加载 html 文件。由于下载速度 我只需要html,而不是css,png。下载所有资源时,webview 加载速度太慢。 我真的只想得到html。我该如何实现这个目标?
【问题讨论】:
【参考方案1】:使用此代码,您应该能够做到这一点。
WebSettings settings = webview.getSettings();
settings.setBlockNetworkLoads(true);
settings.setBlockNetworkImage(true);
settings.setJavaScriptEnabled(false);
【讨论】:
感谢您的回答。但是当我尝试 settings.setBlockNetwrokLoads(true) 时,Webview 对我说 net:ERR_CACHE_MISS 错误。 哦,是的,我认为 setBlockNetwork() 将阻止所有无法浏览互联网的网络负载。更好的选择是这样做。@Override public boolean shouldOverrideUrlLoading(WebView view, String url) // Ignore css and js if (url.endsWith(".css") || url.endsWith(".js")) return false; return true;
感谢您的评论!我试试这个方法以上是关于如何在 android webview 中仅加载 html(不加载 css、png、ico 等)?的主要内容,如果未能解决你的问题,请参考以下文章
YouTube 视频在 WebView Android 中仅在屏幕旋转时播放音频
如何在android中将url加载到webview时显示进度?
Android如何在屏幕关闭/打开时防止webview重新加载?