当应用在后台运行时,Google Firebase远程通知不会弹出

时间:2016-07-22 07:30:34

标签: ios firebase firebase-notifications

我正在使用Google Firebase向用户发送通知。当时我正在尝试向单个设备(我的)发送通知。

接收通知时出现问题 - 我的应用程序在后台横幅中运行时未显示。但是,如果我打开我的应用程序,方法didReceiveRemoteNotification:触发我的警报视图:

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler {

UIAlertView *alert = [[UIAlertView alloc] initWithTitle:userInfo[@"notification"][@"body"]
                                                message:@"More info..."
                                               delegate:self
                                      cancelButtonTitle:@"Cancel"
                                      otherButtonTitles:@"Open",nil];
[alert show];

}

但是,正如它在Google Firebase文档中所写,此方法会在应用打开后触发,因此有意义。

因此,如果应用程序处于后台,我就无法触发通知横幅。

我读过将消息优先级设置为高和自定义数据密钥内容 - 可用1,但没有运气。

我在代码中遗漏了其他内容以触发通知吗? 我已使用Google Firebase指南完成此操作以实现通知。

1 个答案:

答案 0 :(得分:2)

我解决了我的问题。我再次开始在Google Firebase上阅读文档,在Cloud Messaging下我发现了这个:

在setAPNSToken中提供您的APN令牌和令牌类型:输入:。确保正确设置了type的值:沙箱环境的FIRInstanceIDAPNSTokenTypeSandbox,或生产环境的FIRInstanceIDAPNSTokenTypeProd。如果您未设置正确的类型,则不会将消息发送到您的应用。

所以我错过了把这个语句放在方法中:didRegisterForRemoteNotificationsWithDeviceToken:

 - (void)application:(UIApplication *)application
didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {

[FIRInstanceID instanceID] setAPNSToken:deviceToken type:FIRInstanceIDAPNSTokenTypeSandbox];

}

别忘了输入类型:" FIRInstanceIDAPNSTokenTypeProd"用于生产。