【问题标题】:ionic 1 onesignal is there a way to know if there is a push notification when open app from background to foreground or launching appionic 1 onesignal 有办法知道从后台到前台打开应用程序或启动应用程序时是否有推送通知
【发布时间】:2018-07-29 12:25:10
【问题描述】:

我有一个使用 ionic1 制作的离子应用程序,并使用 OneSignal 进行推送通知。 目前,在以下情况下,一个信号适用于推送通知: - 应用程序已经打开 - 应用处于后台或杀死,点击推送通知

使用这两个函数handleNotificationReceived和handleNotificationOpened

window.plugins.OneSignal.handleNotificationReceived(function(jsonData) {
    $state.go('panicalarm');
    console.log("navigate to panicalarm page");
  })


window.plugins.OneSignal.handleNotificationOpened(function(jsonData) {      
    $state.go('panicalarm');
    console.log("navigate to panicalarm page");
  })

我想知道,当直接启动应用程序或将应用程序从后台带到前台而不点击推送通知时,我该如何处理推送通知?这可能吗?

【问题讨论】:

  • 我对 ionic 或 onesignal 都不熟悉,但在 Android 上你可以像这样清除所有通知: NotificationManager.cancelAll() 我不确定这是否适用于推送通知,但你可以给它试一试。

标签: android ios ionic-framework push-notification onesignal


【解决方案1】:

我想说我们可以通过以下方式实现它:

解决方案一:您可以每次发送推送通知。然后,如果应用程序已打开,请忽略/吞下通知。 这对我来说似乎是一种资源浪费

解决方案 2:在您自己的数据库中跟踪应用程序的状态,并且仅在应用程序未从后台转换到前台时发送推送通知。 在我看来过于复杂。

我提出的解决方案:将为前台和后台保留相同的代码,但是当应用程序从后台过渡到前台时,我将显示通知图标(徽章图标),如下所示(一个样本)

  1. 吸引用户
  2. 从不分心
  3. 会在用户看到通知后消失

【讨论】:

    【解决方案2】:

    你可以试试https://github.com/katzer/cordova-plugin-background-mode

    它可以帮助您保持应用在后台运行

    【讨论】:

    • 它有这个问题 - “无限后台任务在大多数移动操作系统上不受官方支持,因此不符合公共商店供应商。不保证成功提交。”。如果应用在后台,并且打开,是否明确没有办法接收推送信息?
    猜你喜欢
    • 2015-04-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多