2013-04-05 63 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

相关问题