我有一个应用程序,它接收来自使用One Signal的服务器的推送通知。这个应用程序有一个聊天,每当用户向另一个人发送消息时,这个消息就会收到他们的通知。
它就像一个魅力,好,但如果用户收到有关当前在他们的设备上打开的对话的通知,它没有任何意义。
例如:如果我正在谈话,例如John和他给我发了一条消息,在我的设备上我们的聊天打开了,我发现他刚刚给我发了一条消息,如果我的手机上弹出推送通知,它看起来并不好看,否则我要么与另一个人聊天,要么该应用程序没有打开。
我不知道自己能不能说清楚,我为此道歉,但如果你明白了:它是否有意义,那么,怎么做?我没有在One Signal文档上看到这样的功能。
由于
答案 0 :(得分:2)
您可以在初始化调用中将inFocusDisplaying
方法设置为None
这会阻止应用程序打开时显示所有通知。
对于Ionic,有关此问题的文档在此处:https://documentation.onesignal.com/docs/cordova-sdk#section--infocusdisplaying-
OneSignal无法阻止通知显示在应用的某些页面上。
答案 1 :(得分:0)
针对谁遇到此问题
禁用特定页面中的通知的好方法
// 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();
}