Android 不带Javascript的webview中的按钮

Android 不带Javascript的webview中的按钮,android,button,webview,Android,Button,Webview,我有一个android应用程序,可以从服务器加载webview。我没有服务器代码,因此无法在Javascript中更改任何内容。我想知道在webview中何时单击按钮,以及按钮中的标签是什么。我不知道身份证,我只想拿到标签 我试图寻找这个,但找不到答案。我找到了可以在javascript中工作的解决方案,但在我的情况下,我不能。这个建议可能有助于找到有助于确定按钮标签的有用信息。为WebViewClient覆盖shouldOverrideUrlLoading()、shouldInterceptR

我有一个android应用程序,可以从服务器加载webview。我没有服务器代码,因此无法在Javascript中更改任何内容。我想知道在webview中何时单击按钮,以及按钮中的标签是什么。我不知道身份证,我只想拿到标签


我试图寻找这个,但找不到答案。我找到了可以在javascript中工作的解决方案,但在我的情况下,我不能。

这个建议可能有助于找到有助于确定按钮标签的有用信息。为
WebViewClient
覆盖
shouldOverrideUrlLoading()
shouldInterceptRequest()
和/或
onLoadResource()
,以便您可以获取任何重定向的URL

例如:

webview.setWebViewClient(new WebViewClient() {
    public boolean shouldOverrideUrlLoading(WebView view, String url) {

        // Try to learn something useful from the 'url' here.

        // Continue as normal, loading the 'url' within this WebView.
        view.loadUrl(url);
        return false; // Allow the WebView to handle the request.
    }

    // Optional: Add similar for "shouldInterceptRequest()" and/or "onLoadResource()".
});

注意:如上所述覆盖
shouldOverrideUrlLoading()
是将重定向保持在同一
WebView
中的标准方法,而不是重定向到默认浏览器应用程序。

此建议可能有助于找到有助于确定按钮标签的有用信息。为
WebViewClient
覆盖
shouldOverrideUrlLoading()
shouldInterceptRequest()
和/或
onLoadResource()
,以便您可以获取任何重定向的URL

例如:

webview.setWebViewClient(new WebViewClient() {
    public boolean shouldOverrideUrlLoading(WebView view, String url) {

        // Try to learn something useful from the 'url' here.

        // Continue as normal, loading the 'url' within this WebView.
        view.loadUrl(url);
        return false; // Allow the WebView to handle the request.
    }

    // Optional: Add similar for "shouldInterceptRequest()" and/or "onLoadResource()".
});

注意:如上所述覆盖
shouldOverrideUrlLoading()
是将重定向保持在同一
WebView
中的标准方法,而不是重定向到默认浏览器应用程序。

您可能确实需要检查此页面:

具体来说,addJavascriptInterface可能就是您想要的:

它允许您从javascript执行Java代码,再加上在页面中插入代码的功能,它是一个非常强大的工具,可以让您的活动和页面之间实现高度耦合

我想现在你已经知道该怎么做了,但我还是要勾勒出一个可能的行动方案:

  • 当按下按钮时,创建一个javascript界面,其中包含要在活动中执行的回调
  • 页面加载后,通过注入在每个按钮(或链接)中安装调用javascript界面的代码

希望这有帮助

您可能真的想查看此页面:

具体来说,addJavascriptInterface可能就是您想要的:

它允许您从javascript执行Java代码,再加上在页面中插入代码的功能,它是一个非常强大的工具,可以让您的活动和页面之间实现高度耦合

我想现在你已经知道该怎么做了,但我还是要勾勒出一个可能的行动方案:

  • 当按下按钮时,创建一个javascript界面,其中包含要在活动中执行的回调
  • 页面加载后,通过注入在每个按钮(或链接)中安装调用javascript界面的代码

希望这有帮助

这只是一个想法,但是你可以下载源代码并添加你自己的javascript,然后在webview中加载。这只是一个想法,但是你可以下载源代码并添加你自己的javascript,然后在webview中加载。只需一个问题,我如何知道单击了哪个按钮这是一个非常好的问题,为了找到答案(如果有的话),您必须对我推荐的三个重写函数中返回的“url”和其他值进行实验。我不知道你是否能找到按钮或按钮标签。但是,如果这是我的问题,我会在我的调试器和/或LogCat中查看所有这些值,看看我是否能找出如何从那里继续。谢谢David,我使用url来发现哪个按钮被单击,它正在工作。只有一个问题,我如何知道哪个按钮被单击这是一个非常好的问题,并找到答案(如果有),您将不得不尝试使用“url”以及我推荐的三个重写函数中返回的其他值。我不知道您是否可以找到按钮或按钮标签。但是,如果这是我的问题,我会在调试器和/或LogCat中查看所有这些值,看看是否可以从中找到继续操作的方法。谢谢David,我使用url来发现哪个按钮是c舔了舔,它就开始工作了