ios - 当我的应用程序打开时,我收到横幅通知。我不想在我的应用程序打开时显示横幅

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

enter image description here

我在我的 iOS 应用程序中使用 Firebase 通知,每当我收到通知时,即使应用程序打开,它也会显示为横幅。

当我们使用 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];
    }

对于设备 token :

- (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);
}

请帮我解决这个问题

最佳答案

在这里您可以设置演示样式警报,这就是显示横幅的原因。您应该根据苹果文档在完成处理程序中传递 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);
}

关于ios - 当我的应用程序打开时,我收到横幅通知。我不想在我的应用程序打开时显示横幅,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57881608/

相关文章:

android - 解析 Android 禁用推送通知

java - 是否建议使用 Server Sent Events 通过持续查询数据库来推送通知?

ios - cordova 文件传输插件在 ios 模拟器中不起作用

ios - 动画化 UICollectionView/UITableView 中 ScrollView 的偏移会导致单元格过早消失

iphone - 为应用程序制作主页 View

iphone - iOS : get images from gallery

android - 未收到来自 GCM 的推送通知 (Android)

ios - JonkyKong 的 SideMenu 'No Such Module' 错误

objective-c - 在 Cocoa 中创建动画 GIF - 定义帧类型

objective-c - 使用分布式对象的进程之间的通信