我正在创建一个应用程序,如果一个网页(显示已取消的课程)包含您所在的课程,我想通知用户。
如何做到这一点?
我是否必须使用webview
并在背景上每隔x分钟重新加载并检查它是否包含某些单词,如果有,请发出通知?如果是这样,我如何检查webview
中的某些单词?
答案 0 :(得分: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级别,则必须使用这两种方法。两者都具有相同的侦听器,因此您只需要一个侦听器,请检查上面的链接。
答案 1 :(得分:1)
我还没有在Android中这样做过。但我已经在其他环境中完成了它。您可以从缓存中提取最后一页并解析它。否则,使用Java来重新编译每个页面并进行解析。 van Raak先生对这项服务有很好的了解。你可能已经有了一个并且可以添加它。虽然JSoup很方便,但它有点胖。你可以很容易地做自己的轻量级过滤器。
答案 2 :(得分:0)
如果数据无法通过任何其他方式提供(例如RSS提要或其他类型的网址请求),您可以使用jSoup之类的内容抓取网页。您可以简单地为jSoup提供网页的URL,它将返回网页的原始HTML文件。您可以浏览DOM元素并获得所需的确切文本。
您还必须创建一个即使在您不使用该应用程序时也会运行的Android服务。每隔X分钟,这将进行网页抓取,并在需要时发出通知。