我正在构建我的第一个应用程序,它需要一个活动来显示webview中的一部分网页。该网页包含许多我不希望我的应用展示的添加内容和其他无关紧要的内容。
例如,我将youtube作为示例网页,并试图不显示正文。我检查了youtube页面并找到了" page-container"作为网页中央部分的id。
public class ResultsActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_results);
final WebView webview = (WebView)findViewById(R.id.results_webview);
webview.getSettings().setDomStorageEnabled(true);
webview.getSettings().setJavaScriptEnabled(true);
webview.setWebViewClient(new WebViewClient() {
@Override
public void onPageFinished(WebView view, String url)
{
webview.loadUrl("javascript:function() { " +
"document.getElementById('page-container')[0].style.display='none'; " +
"})()");
}
});
webview.loadUrl("https://www.youtube.com");
}
但onPageFinished()函数中的javascript代码无效。完整的YouTube页面正在应用中打开。
答案 0 :(得分:0)
我猜您必须通过检查网页手动检查ID。完成后,您可以使用此类似帖子jsoup html parser中提到的here。
Document doc = Jsoup.connect(URL).get();
Elements elementsHtml = doc.getElementById(id);
for(Element element: elementsHtml)
{
Log.i("ELEMENTI",URLDecoder.decode(element.text(), HTTP.UTF_8));
}