当通知到达时,应用程序会执行为接收通知而配置的回调。
如果通知在后台随应用程序到达,我希望应用程序移动到特定视图。但是如果通知到达应用程序在前台我只想打印警报。
如何在回调函数中知道通知到达时应用程序的状态?
谢谢。
答案 0 :(得分:0)
我不知道这是多么可靠,但它似乎在应用程序运行时起作用,但只是在后台:
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秒钟内到达的任何东西,可能在我们睡着时到达,现在刚刚交付)
这是一个haCk,我确信有各种奇怪的时间例,但它似乎涵盖了许多案例。