当通知到达时,应用程序会执行为接收通知而配置的回调。
如果通知在后台应用程序到达,我希望应用程序移动到特定视图。但是,如果通知在前台应用程序到达,我只想打印一个警报。
通知到达时如何在回调函数中知道应用程序的状态?
谢谢你。
当通知到达时,应用程序会执行为接收通知而配置的回调。
如果通知在后台应用程序到达,我希望应用程序移动到特定视图。但是,如果通知在前台应用程序到达,我只想打印一个警报。
通知到达时如何在回调函数中知道应用程序的状态?
谢谢你。
我不知道这有多可靠,但它似乎在应用程序运行时工作,但只是在后台:
var sleeping = false;
document.addEventListener("pause", function() {sleeping = true;}, false);
document.addEventListener("resume", function() {sleeping = false;}, false);
接着:
function pushNotificationReceived(props, payload) {
if (sleeping) {
alert("caught me napping");
} else {
alert("I've been waiting for you.");
}
}
棘手的情况是应用程序完全停止时。您需要在调用通知回调之前登录,并且在此之前很久就会触发 resume 事件。如果您想处理这种情况,您可能需要在 WL.Client.Push.onReadyToSubscribe 函数中使用以下内容:
sleeping = true;
setTimeout(function(){sleeping = false;}, 1000);
(任何在准备订阅后 1 秒内到达的东西,可能是在我们睡着的时候到达的,现在刚刚交付)
这有点麻烦,我敢肯定有各种奇怪的时间情况,但它似乎涵盖了许多情况。