我有一个应用程序,可以从与One Signal一起使用的服务器接收推送通知。这个应用程序有一个聊天,每次用户向另一个用户发送消息时,这个用户都会收到他们的通知。
它就像一个魅力,很好,但如果用户收到有关当前在其设备上打开的对话的通知,则没有任何意义。
例如:如果我正在与例如 John 交谈,他给我发送了一条消息,并且在我的设备上打开了我们的聊天,我看到他刚刚给我发了一条消息,如果我的手机上弹出推送通知看起来不太好,否则我要么在与另一个人聊天,要么没有打开应用程序。
我不知道我是否可以说清楚,我为此道歉,但如果你明白了:它有意义吗,所以,如何做到这一点?我在 One Signal 文档中没有看到这样的功能。
谢谢
您可以在 init 调用中将inFocusDisplaying
方法设置为None
这将阻止在应用程序打开时显示所有通知。
对于 Ionic,有关此的文档在这里:https://documentation.onesignal.com/docs/cordova-sdk#section--infocusdisplaying-
OneSignal 无法阻止通知仅在应用程序的某些页面上显示。
对于谁面临这个问题
在特定页面中禁用通知的好技巧
// set it to None on page init
ngOnInit(){
this.oneSignal.startInit("APP ID", "SENDER ID");
this.oneSignal.inFocusDisplaying(this.oneSignal.OSInFocusDisplayOption.None);
this.oneSignal.endInit();
}
// and when this page are destroyed set it to Notification or anything else
ngOnDestroy(){
this.oneSignal.startInit("APP ID", "SENDER ID");
this.oneSignal.inFocusDisplaying(this.oneSignal.OSInFocusDisplayOption.Notification);
this.oneSignal.endInit();
}