我有一个从服务器加载webview的android应用程序。我没有服务器代码,所以我不能在Javascript中更改任何内容。我想知道一个按钮在webview中被点击的时候,按钮中的标签是什么。我不知道身份证,我只想获得标签。在没有Javascript的webview中的按钮
我试过寻找这个,但找不到答案。我找到了解决方法,你可以在JavaScript中工作,但在我的情况下,我不能。
我有一个从服务器加载webview的android应用程序。我没有服务器代码,所以我不能在Javascript中更改任何内容。我想知道一个按钮在webview中被点击的时候,按钮中的标签是什么。我不知道身份证,我只想获得标签。在没有Javascript的webview中的按钮
我试过寻找这个,但找不到答案。我找到了解决方法,你可以在JavaScript中工作,但在我的情况下,我不能。
此建议可能有助于找到有助于确定按钮标签的有用信息。覆盖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
内保持重定向而不是重定向到默认浏览器应用程序的标准方法。
谢谢,我欣赏它。这是工作 – 2013-03-25 19:13:33
只是一个问题,我怎么知道哪个按钮被点击 – 2013-03-25 19:13:51
这是一个非常好的问题,并找出答案(如果有的话),你将不得不尝试“url”和其他值在我推荐的三个覆盖函数中返回。我不知道你是否可以找到按钮或按钮标签。但是,如果这是我的问题,我会在我的调试器和/或LogCat中查看所有这些值,看看我是否可以找出如何从那里继续。 – 2013-03-25 19:23:18
你可能真要查这个页面:
Building Web Apps in WebView (Google API Guides)
具体来说,似乎addJavascriptInterface可能是你在找什么:
addJavascriptInterface(Object object, String name)
它可以让你执行你的Java代码来自javascript,并且可以在页面中插入代码,这是一个非常强大的工具,可以让你在Activity之间获得高级的耦合和你的页面。
我认为,在这一点上,你就已经知道该怎么做,但无论如何,我会草拟一个可能的行动路线:
希望这有助于
只是一个想法,但您可以下载源代码并添加您自己的JavaScript,然后将其加载到Web视图中。 – 2013-03-25 17:22:53