如何在 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重新加载?

Android:如何在将数据加载到 WebView 时显示进度条?

android 开发webview如何加载p标签的html

Android webview如何检测何时重新加载