2013-03-25 35 views
1

我有一个从服务器加载webview的android应用程序。我没有服务器代码,所以我不能在Javascript中更改任何内容。我想知道一个按钮在webview中被点击的时候,按钮中的标签是什么。我不知道身份证,我只想获得标签。在没有Javascript的webview中的按钮

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

+0

只是一个想法,但您可以下载源代码并添加您自己的JavaScript,然后将其加载到Web视图中。 – 2013-03-25 17:22:53

回答

1

此建议可能有助于找到有助于确定按钮标签的有用信息。覆盖shouldOverrideUrlLoading(),shouldInterceptRequest()和/或onLoadResource()WebViewClient,以便您可以获取任何重定向的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内保持重定向而不是重定向到默认浏览器应用程序的标准方法。

+0

谢谢,我欣赏它。这是工作 – 2013-03-25 19:13:33

+0

只是一个问题,我怎么知道哪个按钮被点击 – 2013-03-25 19:13:51

+0

这是一个非常好的问题,并找出答案(如果有的话),你将不得不尝试“url”和其他值在我推荐的三个覆盖函数中返回。我不知道你是否可以找到按钮或按钮标签。但是,如果这是我的问题,我会在我的调试器和/或LogCat中查看所有这些值,看看我是否可以找出如何从那里继续。 – 2013-03-25 19:23:18

0

你可能真要查这个页面:

Building Web Apps in WebView (Google API Guides)

具体来说,似乎addJavascriptInterface可能是你在找什么:

addJavascriptInterface(Object object, String name)

它可以让你执行你的Java代码来自javascript,并且可以在页面中插入代码,这是一个非常强大的工具,可以让你在Activity之间获得高级的耦合和你的页面。

我认为,在这一点上,你就已经知道该怎么做,但无论如何,我会草拟一个可能的行动路线:

  • 创建您想在活动时执行的回调JavaScript接口一个按钮,一旦按下
  • 为您的页面加载,安装代码通过注射打电话给你的每个按钮的JavaScript接口(或链接)

希望这有助于