离子1信号有一种方法可以知道从背景到前景打开应用程序或启动应用程序时是否有推送通知

问题描述 投票:6回答:2

我有一个离子应用程序使用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");
  })

我想知道,如何在直接启动应用程序时处理推送通知,或者在不点击推送通知的情况下将应用程序从后台运行到前台?那可能吗 ?

android ios ionic-framework push-notification onesignal
2个回答
2
投票

我想说我们可以通过以下方式实现这一点:

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

解决方案2:在您自己的数据库中跟踪应用程序的状态,如果应用程序没有从后台转换到前台,则仅发送推送通知。它对我来说过于复杂。

我建议的解决方案:将为前景和背景保留相同的代码,但当应用程序将从背景转换到前景时,我将显示如下所示的通知图标(徽章图标)(示例一)

enter image description here

  1. 它吸引了用户
  2. 永远不要分心
  3. 用户看到通知后将消失

1
投票

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

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

© www.soinside.com 2019 - 2024. All rights reserved.