Java 如何在Android webview中显示没有搜索栏的Google搜索结果?

Java 如何在Android webview中显示没有搜索栏的Google搜索结果?,java,android,webview,textview,Java,Android,Webview,Textview,我在一个活动中有一个webview,我可以在其中显示搜索结果(比如从google.com)。 但是,我不需要谷歌搜索字段和字母“Web、图像、视频,…”以及webview中显示的灰线。 实现这一目标的途径是什么?(换句话说,如果这是一个解决方案,如何阻止webview的顶部。是否有其他方法,例如加载不同的搜索结果页面而不使用搜索栏?在哪里可以找到它?) 这是我当前的布局文件。(如有必要,我愿意删除顶部的文本视图)。谢谢 <?xml version="1.0" encoding="utf-8

我在一个活动中有一个webview,我可以在其中显示搜索结果(比如从google.com)。 但是,我不需要谷歌搜索字段和字母“Web、图像、视频,…”以及webview中显示的灰线。 实现这一目标的途径是什么?(换句话说,如果这是一个解决方案,如何阻止webview的顶部。是否有其他方法,例如加载不同的搜索结果页面而不使用搜索栏?在哪里可以找到它?) 这是我当前的布局文件。(如有必要,我愿意删除顶部的文本视图)。谢谢

<?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>


此外,我还看到专业应用程序仅在纸质容器中显示新闻,并显示新闻结果。它们是如何实现的?

您可以通过使用javascript阻止HTML元素来实现这一点。 只需调用WebViewClient的(例如)onLoadResource方法,并使用以下javascript删除您想要删除的元素。您需要检查元素并获取其标记名(例如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后导航到google。此外,如果您想删除更多元素,请使用chrome usb调试开发工具,找出哪些元素具有哪个标记名,然后再次复制粘贴此“document.getElements…”行,并将“div”更改为您要删除的任何内容!括号中的数字告诉您从HTML代码的顶部到底是哪个标记

编辑: 如果你用你的设备检查谷歌页面的代码,它会是这样的:如果你把鼠标悬停在第一行上
            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'; " +
                        "})()");
                }
            }
        });

瞧,我们有一个几乎空白的谷歌页面:)

我无法理解如何从网页中找到“div”ID,即使我在查看网页调试页面(从Chrome)。对于从wt 0开始的随机div ID数,上面提到的方法u不适用于我。例如:Google搜索结果页面显示的文本栏的div id是什么。怎么知道?另外,添加多个getElements的语法是什么。。。行?嗨,不幸的是,代码什么都没做。这是我的截图:。我想知道hw如何识别1的标签。谷歌标志。2.谷歌搜索栏。3.谷歌搜索按钮。4) 谷歌链接上写着a)网络b)新闻c)图像d)地图e)更多带有下拉图标,如果可以阻止它们,或者至少通过在屏幕上设置从X滚动到Y,并且不允许用户滚动到Y以外,让用户看不到它们?我找不到相应的方法。@Zac1如果您将鼠标悬停在Html代码行上,您将看到设备网页上的元素变为蓝色,那么您就知道这一行就是那个元素。你正在搜索的标签只是“嗨,我完全迷路了”之后的第一个单词。你能举个例子吗?例如,显示谷歌徽标的线条在哪里?这是什么标签?