2013-03-25 67 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接口(或鏈接)

希望這有助於