我有一個從服務器加載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