繁体   English   中英

Ionic 2中的通知

[英]Notifications in Ionic 2

我已经看了很多帖子。

有点困惑的是,即使my-app被用户杀死了,ionic 2 app也会发送本地通知吗?

我有以下情况。

假设应用被用户杀死

我们能否在后台运行该应用程序(例如24小时后通过操作本地/云存储来检查某些条件是否成立)然后发送本地通知?

我是离子2的新手。那么有人可以让我知道上述情况是可能的吗?

如果无法实现,那么让我知道我们可以通过推送通知服务器(假设该应用被用户杀死)来操纵(获取和分析) 本地存储吗?

两者都有可能。 我将告诉您我将如何做而不共享代码(可能会很长),我将为您提供步骤,您可以弄清楚。

对于第一种情况,您需要从'ionic-angular'和MomentJS导入LocalNotification pluginLocalStoragePlatform (不是必需的,但强烈建议)。

  • 您需要创建一个服务,至少它很好,因此您无需将所有内容都放入app.components
  • 您可以使用3种Platform方法来验证和设置LocalNotification ,它们是.pause.resume.ready
  • 暂停将检查用户是否已离开该应用程序,但该应用程序仍在后台运行。
  • 简历将检查用户是否已返回该应用程序,但不会触发该应用程序被杀死的情况。
  • 准备就绪会在平台准备就绪时触发,您将使用它来检查应用程序是否已被终止并“首次”启动。
  • 您将需要MomentJS来操纵时间,因为将天/小时添加到当前日期时间更加容易。
  • LocalNotification接受ISO字符串和UNIX时间戳来安排通知。
  • 在创建的服务中,您将拥有计划和取消LocalNotification的方法,请查看插件Wiki。
  • 在暂停方法上,您将调用schedule方法,并计划一个具有Moment的localNotification,将Moment添加到当前时间1天: Moment().add(1, 'day').unix()并在'at'中使用结果您的时间表。
  • 这将返回一个带有您的通知数据及其ID的this.storage.set('Daily', ReturnedID); ,将此ID像this.storage.set('Daily', ReturnedID);一样保存在您的localStorage中this.storage.set('Daily', ReturnedID);
  • 应用就绪或恢复后,您将取消通知。
  • 基本上就是这样,关闭时保存通知,进入时取消通知。

第二种情况要难一些,并且您需要一个后端,因为您需要不断检查用户退出应用程序的时间。 您只需要MomentJSPlatform导入,推送服务插件以及一种连接到数据库的方式即可(通过Http或插件,如果它是Firebase之类的服务)。

  • 对于第一个场景,新服务,调用该服务方法的平台,步骤是相同的​​,但是现在将为您的push插件添加一些方法,因此当您收到push时,可以显示和操作数据。
  • 大多数推送服务(和localNotification)都具有Data属性,您可以在其中与用户共享一些数据,在这种情况下,它将是您要在localStorage中保护的数据。
  • 您将需要该用户的令牌,以便可以向其发送推送,请查看您的推送文档,以了解如何获取该令牌并将其保存到用户数据库寄存器/节点。
  • 当用户离开应用程序时,您希望用户收到该推送的时间存储在数据库中(我假设您要与第一种情况相同,但方式不同)。
  • 当用户返回到应用程序时,您将确定该时间寄存器。
  • 棘手的部分:您将需要后端来检查每个用户寄存器,并获取他们需要接收推送的时间,因此,如果时间小于当前时间,则将发送推送并删除该寄存器。
  • 在应用程序中,当用户收到推送时,功能会将数据保存到localStorage,进行操作,准备就绪或您想要的所有内容。

抱歉,我无法共享一些代码,但是如果您需要更多的解释或想法,请询问。 希望这会有所帮助:D

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM