1

我正在创建一个应用程序,如果网页(显示已取消的课程)包含您所在的课程,我想向用户发出通知。

如何做到这一点?
我是否必须webview在后台使用 a 并每隔 x 分钟重新加载一次并检查它是否包含某些单词,如果包含,请发出通知?如果是这样,我如何检查 a 中的某些单词webview

4

3 回答 3

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 级别,则必须同时使用这两种方法。尽管两者都有相同的侦听器,因此您只需要一个侦听器,请查看上面的链接。

于 2013-04-06T20:33:51.970 回答
1

我还没有在 Android 中这样做过。但我在其他环境中做过。您可能能够从缓存中提取最后一页并对其进行解析。否则,使用 Java 来拉回每个页面并进行解析。van Raak 先生对这项服务有一个好主意。你可能已经有一个并且可以添加它。虽然 JSoup 很方便,但它有点胖。你可以很容易地做你自己的轻量级过滤器。

于 2013-04-05T13:35:30.090 回答
0

如果数据无法通过任何其他方式(如 RSS 提要或某种其他类型的 URL 请求)获得,您可以使用jSoup之类的内容抓取网页。您可以简单地给 jSoup 网页的 URL,它会返回网页的原始 HTML 文件。您可以遍历 DOM 元素并获得所需的确切文本。

您还必须创建一个即使在您不使用应用程序时也能运行的 Android 服务。每 X 分钟,这将进行网页抓取,并在需要时发出通知。

于 2013-04-05T13:34:22.147 回答