我在我的 iOS 应用程序中使用 Firebase 通知,每当我收到通知时,即使应用程序打开,它也会显示为横幅。
当我们使用 iOS 原生远程通知方法时,实际上不会发生这种情况。
我尝试检查是否调用了默认的 iOS 方法,但它不起作用。
注册:
if(SYSTEM_VERSION_GRATERTHAN_OR_EQUALTO(@"10.0")){
UNUserNotificationCenter *center = [UNUserNotificationCenter currentNotificationCenter];
center.delegate = self;
[center requestAuthorizationWithOptionsUNAuthorizationOptionSound | UNAuthorizationOptionAlert | UNAuthorizationOptionBadge) completionHandler:^(BOOL granted, NSError * _Nullable error){
if( !error ){
[[UIApplication sharedApplication] registerForRemoteNotifications];
}
}];
}
else{
[application registerForRemoteNotifications];
}
对于设备 token :
- (void)messagingnonnull FIRMessaging *)messaging didRefreshRegistrationTokennonnull 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)userNotificationCenterUNUserNotificationCenter *)center willPresentNotificationUNNotification *)notification withCompletionHandlervoid (^)(UNNotificationPresentationOptions options))completionHandler{
//Called when a notification is delivered to a foreground app.
NSDictionary *userInfo = notification.request.content.userInfo;
completionHandler(UNNotificationPresentationOptionAlert);
}
请帮我解决这个问题
您可以在此处设置演示样式警报,这就是显示横幅的原因。您应该根据苹果文档在完成处理程序中传递 UNNotificationPresentationOptionNone 。
-(void)userNotificationCenterUNUserNotificationCenter *)center willPresentNotificationUNNotification *)notification withCompletionHandlervoid (^)(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/
欢迎光临 OStack程序员社区-中国程序员成长平台 (https://ostack.cn/) | Powered by Discuz! X3.4 |