2013-04-05 104 views
0

我正在創建一個應用程序,並且如果網頁(顯示已取消的類)包含您所在的類,我想給用戶一個通知。

這怎麼辦?
我是否必須使用webview並在背景上每x分鐘重新加載一次,並檢查它是否包含某些單詞,如果含有,請發出通知?如果是這樣,我如何檢查webview中的某些單詞?檢查網頁/ Webview是否包含某些詞(android)

+0

但是,您的意圖是什麼?給用戶提供尋找單詞的機會,或者在應用運行時找到一個單詞? – Castiblanco 2013-04-05 13:31:22

+0

我想在應用程序運行時找到一個詞。 – Mdlc 2013-04-09 18:02:32

回答

0

如果數據不能通過任何其他方式(如RSS提要或其他類型的URL請求),你可以用類似jSoup的東西刮網頁。您只需向jSoup提供網頁的網址,它就會返回網頁的原始HTML文件。您可以瀏覽DOM元素並獲取所需的確切文本。

您還需要創建一個即使在不使用應用程序時也能運行的Android服務。每X分鐘這將做網頁抓取,並在需要時發出通知。

1

我還沒有在Android中完成這項工作。但是我在其他環境中完成了它。您可能能夠從緩存中拉出最後一頁並解析它。否則,使用Java重新編譯每個頁面並解析。範拉克先生對這項服務有個好主意。你可能已經有了一個,可以添加它。雖然JSoup很方便,但它有點胖。你可以很容易地做你自己的輕量級過濾器。

2

這在WebView中很容易實現,不需要不必要的代碼。下面的代碼將查找的字符串(也可以設置一個FindListener通知你,如果/當字符串被發現,我還沒有使用它,但它的存在):

String string = "text you want to find"; 
webview.findAll(string); //works for API levels 3 - 16 
webview.findAllAsync(string); //works for API levels 16 and up 

正如你看到的,你會如果您想要支持低於16的API級別,則必須使用這兩種方法。雖然兩者都具有相同的偵聽器,但您只需要一個偵聽器,請檢查上面的鏈接。

+0

webview.findAllAsync不返回任何東西,有什麼我可以使用,所以它返回一個布爾值? – Arya 2018-02-15 19:25:25

相關問題