隐藏推送通知时,应用程序正在运行
问题描述:
我发送推送通知,从解析服务器的离子应用程序,该应用程序使用ParsePushPlugin:https://github.com/taivo/parse-push-plugin隐藏推送通知时,应用程序正在运行
继指令,我设法正确地接收推送通知。
但即使当我的应用程序在前台运行时,该插件仍然在我的应用程序顶部显示通知,这非常令人困惑。
我试着收听应用程序运行时收到推送通知的事件。但通知仍在显示:
ParsePushPlugin.on('receivePN', function(pn:any){
console.log('yo i got this push notification:' + JSON.stringify(pn));
}, function(error:any){
console.error(error);
});
如何在应用程序已在前台运行时隐藏通知?
答
制作跟随推插件的选项进行更改,forceShow
会隐藏通知上的应用前景:
{
"android": {
"senderID": "XXXXXXXXXX",
"forceShow": "false",
"badge": "true"
},
"ios": {
"alert": "true",
"badge": "true",
"sound": "true",
"forceShow": "false"
},
"windows": {}
}
答
最后我认识的唯一途径,我可以终止通知是修改ParsePushPlugin .m
-(void)userNotificationCenter:(UNUserNotificationCenter *)center willPresentNotification:(UNNotification *)notification withCompletionHandler:(void (^)(UNNotificationPresentationOptions))completionHandler {
NSLog(@"User info %@", notification.request.content.userInfo);
UIApplication *application = [UIApplication sharedApplication];
[self jsCallback:notification.request.content.userInfo withAction:(application.applicationState == UIApplicationStateActive) ? @"RECEIVE" : @"OPEN"];
//added this line to hide the notification
completionHandler(UNNotificationPresentationOptionNone);
//commented out this line to hide the notification
//completionHandler(UNNotificationPresentationOptionAlert);
}
啊谢谢。我没有使用该插件。但我会给这个插件一个尝试... – mkto
使用这一个更容易:让我知道如果有任何问题:):https://stackoverflow.com/questions/29771478/parse-push-notification-with-ionic/44432579 #44432579 –
如果我使用解析来发送推送通知并且该插件似乎不是专为解析而设计的,这有什么关系吗? – mkto