我在显示搜索结果的活动中有一个网页浏览(比方说来自google.com)。 但是,我不需要Google搜索字段和字母“Web,图像,视频......”以及webview中显示的灰色线条。 有什么方法可以达到这个目的? (换句话说,如果这是一个解决方案,如何阻止webview的顶部。还有其他方法,比如加载不带搜索栏的不同搜索结果页面吗?在哪里找到它?) 这是我当前的布局文件。 (如果有必要,我愿意删除顶部的textview)。谢谢。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:paddingBottom="10dp"
android:text="@string/hello"
android:textSize="20sp" />
<WebView
android:id="@+id/webView1"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</LinearLayout>
此外,我还看到专业应用程序只在带有新闻结果的容器中显示新闻。他们是如何实现这一目标的?
答案 0 :(得分:0)
您可以通过使用javascript阻止HTML元素来实现此目的。 只需调用WebViewClient的(例如)onLoadResource方法,并使用以下javascript删除要删除的元素。您需要检查元素并获取其TagName(例如div,section,a,header,body)
示例:
webview.setWebViewClient(new WebViewClient() {
public void onLoadResource(WebView view, String url) {
super.onLoadResource(view, url);
if (url.equals("www.google.com")) {
view.loadUrl("javascript:(function() { " +
"document.getElementsByTagName('div')[26].style.display = 'none'; " +
"})()");
}
}
});
第26个div是移动设备上的灰色菜单栏(您需要从0开始计数) 初始化WebViewClient后,您需要导航到谷歌。此外,如果您想删除更多元素,请获取chrome usb调试开发工具并找出哪些元素具有哪个标记名,然后复制粘贴此文件&#34; document.getElements ...&#34;再次排队并改变&#34; div&#34;无论你想要删除什么!括号中的数字表示HTML代码从上到下的标记。
编辑: 如果您使用设备检查Google页面的代码,它将如下所示:http://prntscr.com/62jfnm如果您将鼠标悬停在第一行的第一行上
webview.setWebViewClient(new WebViewClient() {
public void onLoadResource(WebView view, String url) {
super.onLoadResource(view, url);
if (url.equals("www.google.com")) {
view.loadUrl("javascript:(function() { " +
"document.getElementsByTagName('div')[26].style.display = 'none'; " +
"document.getElementsByTagName('form')[0].style.display = 'none'; " +
"})()");
}
}
});
瞧:http://prntscr.com/62jj8t我们有一个几乎空白的谷歌页面:)