2017-07-17 105 views
1

我發送推送通知,從解析服務器的離子應用程序,該應用程序使用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); 
}); 

如何在應用程序已在前臺運行時隱藏通知?

回答

0

製作跟隨推插件的選項進行更改,forceShow會隱藏通知上的應用前景:

{ 
     "android": { 
      "senderID": "XXXXXXXXXX", 
      "forceShow": "false", 
      "badge": "true" 
      }, 
     "ios": { 
      "alert": "true", 
      "badge": "true", 
      "sound": "true", 
      "forceShow": "false" 
     }, 
     "windows": {} 
    } 

For more info you can click here

+0

啊謝謝。我沒有使用該插件。但我會給這個插件一個嘗試... – mkto

+0

使用這一個更容易:讓我知道如果有任何問題:):https://stackoverflow.com/questions/29771478/parse-push-notification-with-ionic/44432579 #44432579 –

+0

如果我使用解析來發送推送通知並且該插件似乎不是專爲解析而設計的,這有什麼關係嗎? – mkto

0

最後我認識的唯一途徑,我可以終止通知是修改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); 
} 
相關問題