我应该使用推送还是可以使用本地通知?

Posted

技术标签:

【中文标题】我应该使用推送还是可以使用本地通知?【英文标题】:Should I use push or can I use local notification? 【发布时间】:2016-02-28 00:07:35 【问题描述】:

我有一个适用于 androidios 的 Cordova 应用程序,当用户上次打开该应用程序时,它会登录一个 sqlite 数据库。此数据也会发送到远程存储。

我想提醒用户他们已经有 x 天没有打开该应用程序了。

对于 Android,这非常简单;我刚刚安排了一个重复的 AlarmManager,查询数据库并在上次打开日期超过一天前显示通知。

对于 iOS 来说似乎并不那么简单,因为除了计划的本地通知之外,似乎没有可用的长时间运行的后台任务,或者类似于广播接收器的任何东西。

我是否正确地认为对于 iOS,我需要计算用户上次在我的远程数据存储服务器中打开应用程序的时间,然后通过推送通知将警报发送到应用程序?

或者,是否可以安排一个本地通知,然后让它做一些计算来决定是否显示自己?

【问题讨论】:

【参考方案1】:

使用本地通知,这两个平台的任务都很简单:

当用户启动或恢复应用程序时,您会计算日期时间并预定义何时应该弹出通知。就是这样。

在下一个应用启动/恢复时,您删除旧通知并为下一个通知进行新设置。

我正在用这个插件做类似的任务:https://www.npmjs.com/package/de.appplant.cordova.plugin.local-notification

【讨论】:

以上是关于我应该使用推送还是可以使用本地通知?的主要内容,如果未能解决你的问题,请参考以下文章

我可以将可变内容与本地推送通知一起使用而不是远程通知吗?

本地通知已推送,但应用程序未打开

用户在屏幕聊天时如何取消本地推送通知?

推送通知参数本地化

本地/推送通知和启动应用程序

使用 react-native 创建本地推送通知