我有一个离子应用程序使用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");
})
我想知道,如何在直接启动应用程序时处理推送通知,或者在不点击推送通知的情况下将应用程序从后台运行到前台?那可能吗 ?
2 回答
我想说我们可以通过以下方式实现这一点:
Solution 1 :您每次都可以发送推送通知 . 然后,如果应用程序已打开,请忽略/吞下通知 . It seems like a waste of resource for me
Solution 2 :跟踪app 's state in your own database and only send a push notification if the app isn' t从背景到前景的过渡 . It Seems to me overly complex.
My Proposed Solution :将为前景和后台保留相同的代码但是当应用程序将从背景转换到前景时,我将显示如下所示的通知图标(徽章图标)(示例一)
它吸引了用户
永远不要分心
用户看到通知后
将消失
你可以试试https://github.com/katzer/cordova-plugin-background-mode
它可以帮助您保持应用程序在后台运行