打开我的应用程序时,我收到通知作为横幅。我的应用程式开启时,我不想显示横幅

时间:2019-09-11 03:13:55

标签: ios objective-c push-notification firebase-cloud-messaging

enter image description here

我在我的iOS应用中使用Firebase Notification,当我收到通知时,即使该应用处于打开状态,它也会显示为横幅。

当我们使用iOS本机远程通知方法时,这实际上并没有发生。

我试图检查是否调用了默认的iOS方法,但是它不起作用。

注册:

if(SYSTEM_VERSION_GRATERTHAN_OR_EQUALTO(@"10.0")){
        UNUserNotificationCenter *center = [UNUserNotificationCenter currentNotificationCenter];
        center.delegate = self;
        [center requestAuthorizationWithOptions:(UNAuthorizationOptionSound | UNAuthorizationOptionAlert | UNAuthorizationOptionBadge) completionHandler:^(BOOL granted, NSError * _Nullable error){
            if( !error ){
                [[UIApplication sharedApplication] registerForRemoteNotifications];
            }
        }];
    }
    else{
        [application registerForRemoteNotifications];
    }

对于设备令牌:

- (void)messaging:(nonnull FIRMessaging *)messaging didRefreshRegistrationToken:(nonnull NSString *)fcmToken {
    // Note that this callback will be fired everytime a new token is generated, including the first
    NSString* deviceTkn = [[NSString stringWithFormat:@"%@",fcmToken] stringByReplacingOccurrencesOfString:@"<" withString:@""];
}

用于接收通知:

-(void)userNotificationCenter:(UNUserNotificationCenter *)center willPresentNotification:(UNNotification *)notification withCompletionHandler:(void (^)(UNNotificationPresentationOptions options))completionHandler{
    //Called when a notification is delivered to a foreground app.
    NSDictionary *userInfo = notification.request.content.userInfo;
    completionHandler(UNNotificationPresentationOptionAlert);
}

请帮助我解决这个问题

1 个答案:

答案 0 :(得分:2)

在这里设置演示文稿样式警报,这就是为什么显示横幅。您应该根据Apple文档在完成处理程序中传递UNNotificationPresentationOptionNone。

https://developer.apple.com/documentation/usernotifications/unusernotificationcenterdelegate/1649518-usernotificationcenter?language=objc

-(void)userNotificationCenter:(UNUserNotificationCenter *)center willPresentNotification:(UNNotification *)notification withCompletionHandler:(void (^)(UNNotificationPresentationOptions options))completionHandler{
    //Called when a notification is delivered to a foreground app.
    NSDictionary *userInfo = notification.request.content.userInfo;
    completionHandler(UNNotificationPresentationOptionAlert);
}