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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了离子1信号有一种方法可以知道从背景到前景打开应用程序或启动应用程序时是否有推送通知相关的知识,希望对你有一定的参考价值。

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

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

答案

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

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

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

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

enter image description here

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

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

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

以上是关于离子1信号有一种方法可以知道从背景到前景打开应用程序或启动应用程序时是否有推送通知的主要内容,如果未能解决你的问题,请参考以下文章

Ionic 5 Modal over modal 缺少离子背景

在IOS上的离子3背景音频

如何从 ionic 4 中的离子项目中删除白色背景?

离子应用程序从后台打开

如何在离子页面上触发 ngOnInit

背景地理定位离子3不更新