androidwebview:只显示网站的一部分

92vpleto  于 2021-06-30  发布在  Java
关注(0)|答案(2)|浏览(515)

我想知道是否有可能在网络视图中只显示网站的某些部分。例如,我有一个带有以下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");
nkoocmlb

nkoocmlb1#

这里要理解的最基本的事情是我们在web html文件中引用的元素是类还是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'; "+
       "}
      )()");
9rbhqvlz

9rbhqvlz2#

您可以通过扩展webviewclient并注入一些javascript来呈现您的web页面

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';) 更多信息在androidwebview,我能修改网页的dom吗?

相关问题