【问题标题】:ngCordova LocalNotification pluginngCordova LocalNotification 插件
【发布时间】:2015-09-13 14:53:16
【问题描述】:

我在我的 Ionic 应用程序中使用 ngCordova LocalNotification 插件,我试图让它重复,但时间跨度是随机的。

例如,用户将在 1 分钟内触发通知启动,然后我需要在另外 2 分钟内再次启动通知(假设的示例,在现实生活中,时间跨度会更高,即几天)。

到目前为止,我可以得到第一次执行的通知。

然后,我使用 $cordovaLocalNotification:trigger 方法来检测通知何时被触发,并且在该方法内部我有一个代码来安排新的通知。

所有这些都有效,但是为了启动该方法体内的任何内容,我必须在我的设备上确认通知并单击它,然后它会启动此方法。

所以我想知道是否有办法让它安排一个新的通知,而我不必打开以前的通知?

所有这些都必须在设备本地发生,即使设备重新启动,通知也应该持续存在。非常感谢!

【问题讨论】:

  • this 有用吗?
  • 嗨!不幸的是,没有:(我对日期没有任何问题,我的痛苦是为了安排新的通知,我必须点击发送的通知,然后我的方法中的代码执行。然而,在现实生活中我们不能指望用户点击他们收到的每一个通知,很多时候他们会简单地忽略它或删除它。所以我猜新的通知必须在后台以某种方式安排,而不需要他们打开应用程序,无论如何,这就是理想的方法。知道在哪里寻找答案吗?非常感谢!
  • 你确定trigger事件只有在你点击通知的时候才会产生? Docs 说:“侦听 '$cordovaLocalNotification:trigger' 事件,该事件在触发本地通知时触发。”。
  • 没错!我在该事件中只有一个 alert() ,因此我知道它何时执行,并且我唯一看到警报的时间是我是否响应了该通知。我还打了一个电话来安排新的通知,所以我会在 1 分钟内收到 1 个通知,然后我希望在另一分钟内收到另一个通知,但除非我回复上一个通知,否则它根本不会发生。之后,我按预期在 60 秒内收到通知。
  • 只有在应用程序处于前台时才能看到警报,因此它似乎只有在您单击通知(打开应用程序)时才有效。即使您不单击通知,您也可以检查警报是否有效,在显示通知后打开应用程序(不单击它)。但我认为这里的问题是后台的应用程序:我记得,当应用程序进入后台时,webview 会停止 javascript 的执行。

标签: android ios cordova notifications ionic-framework


【解决方案1】:

当应用程序进入后台时,webview 会停止 javascript 的执行。当你点击通知时,应用程序变成了一个前台进程,并且 javascript 继续执行。

所以它似乎只在您单击通知(打开应用程序)时才有效,因为只有在打开应用程序时才会执行js代码。

如果您不点击通知,您可以仔细检查这一点,在显示通知后打开应用程序(不点击它)。

要清除所有触发的通知,您可以使用getTriggeredIds(scope) 方法获取所有触发的通知ID,并使用clear(ids, scope) 方法清除它们。

请参阅localNotification plugin documentation 了解更多信息。

【讨论】:

  • 谢谢队友,所以我现在应该发布一个新问题,专门询问这个背景/前景问题?
  • 如果您对该主题感兴趣,是的:这是一个公共场所,您可以在其中询问on topic 的所有内容。在询问您的问题是否已经解决之前,请始终在网站中搜索。
  • 嗯,是的,我需要弄清楚这一点,哈哈。非常感谢您迄今为止的帮助!
猜你喜欢
  • 1970-01-01
  • 2016-01-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多