Ionic3 OneSignal 如何检查应用程序是否由于通知打开事件而启动



我想知道是否有办法找出应用程序是否由于通知打开事件而启动。

目前,当用户点击传入通知时,OneSignal 将恢复/启动我的应用程序,它将调用应用的 handleNotificationOpen 处理程序,我可以在其中毫无问题地处理通知,并根据通知的有效负载将用户重定向到我的应用中的特定页面。

我想解决的问题是,如果我的应用程序未运行,则OneSignal将启动该应用程序,并且它将显示我的应用程序的默认根页面不到一秒钟,然后用户将被重定向到正确的页面。我想实现的是防止显示应用程序的根页面,并且仅在单击通知时显示通知处理页面,因此我需要知道是否有办法确定应用程序因通知点击而启动的事实。

有人对如何实现这一目标有想法吗?

谢谢

由于我无法找到一种方法来检查启动参数或类似的东西来验证应用程序是否已启动以处理通知点击,因此我尝试从另一个角度解决问题。

对于任何对可能的"解决方法"感兴趣的人,我已经发布了一个可能的解决方案。请不要认为这是一个明确的解决方案,而应将其视为一个建议,绝不要在未经详尽测试的情况下将其推送到您的生产环境中。

constructor (platform: Platform, private statusBar: StatusBar, private oneSignal: OneSignal) {
var isNotification = false;
platform.ready().then(() => {
this.statusBar.styleDefault();
setTimeout(() => {
if (! isNotification) {
this.rootPage = FirstRunPage;
} 
},3000);
var iosSettings = {
kOSSettingsKeyAutoPrompt: false,
kOSSettingsKeyInAppLaunchURL: false
};
this.oneSignal.startInit('replace with Onesignal id');
this.oneSignal.inFocusDisplaying(this.oneSignal.OSInFocusDisplayOption.Notification);
this.oneSignal.iOSSettings(iosSettings); 
this.oneSignal.handleNotificationOpened().subscribe((data) => {
isNotification = true;
this.nav.push("NotifyHandlerPage");
});
this.oneSignal.endInit();
});
}

最新更新