Android WebView:只显示网站的一部分

我想知道是否可以在WebView中仅显示网站的某些部分。 例如,我有这个网站与以下的HTML:

<html> <body> <div id="1">ID 1</id> <div id="2">ID 2</id> <div id="3">ID 3</id> </body> </html> 

只能在WebView中显示,例如,id =“3”的div的内容? 我的代码是WebWiew:

 WebViewClient WebClient = new WebViewClient(){ public boolean shouldOverrideUrlLoading(WebView view, String url){ view.loadUrl(url); return true; } }; WebView myWebView = (WebView) findViewById(R.id.webView1); myWebView.getSettings().setJavaScriptEnabled(true); myWebView.getSettings().setBuiltInZoomControls(true); myWebView.getSettings().setBuiltInZoomControls(true); myWebView.setWebViewClient(WebClient); myWebView.loadUrl("https://www.example.com"); 

Solutions Collecting From Web of "Android WebView:只显示网站的一部分"

你可以通过扩展WebViewClient并注入一些JavaScript来渲染你的网页

 public class MyWebClient extends WebViewClient { @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { view.loadUrl(url); return true; } @Override public void onPageFinished(WebView view, String url) { view.loadUrl("javascript:your javascript"); } } ......... final MyWebClient myWebViewClient = new MyWebClient(); mWebView.setWebViewClient(myWebViewClient); 

对于隐藏元素使用view.loadUrl("javascript:document.getElementById(id).style.display = 'none';)

更多信息在Android Webview中,我可以修改网页的DOM吗?

这里要理解的最基本的东西是我们在web html文件里面引用的元素是一个还是一个id 。 如果它是一个ID然后getElementById完美的作品。 如果它是一个类,那么getElementsByClassName是必需的。

以下是我正在使用的示例。

 myWebView.loadUrl ("javascript:(function() { " + "document.getElementsByClassName('header_wrapper')[0].style.display='none'; " + "document.getElementsByClassName('footer-contact')[0].style.display='none'; "+ "document.getElementsByClassName('navbar-header')[0].style.display='none'; "+ "document.getElementsByClassName('footer-social')[0].style.display='none'; "+ "document.getElementById('footer_bottom').style.display='none'; "+ "document.getElementById('footer_content').style.display='none'; "+ "document.getElementById('core_mobile_menu').style.display='none'; "+ "document.getElementById('catapult-cookie-bar').style.display='none'; "+ "} )()");