我正在尝试使用 Firebase
进行推送通知.我已经通过 Cocoapods
成功安装了 Firebase
和 Firebase 消息传递
.
I am trying to use Firebase
for push notification. i have successfully installed the Firebase
And Firebase messaging
via Cocoapods
.
我使用了下面的代码
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
[FIRApp configure];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(tokenRefreshCallback:) name:kFIRInstanceIDTokenRefreshNotification object:nil];
UIUserNotificationType allNotificationsType = (UIUserNotificationTypeSound | UIUserNotificationTypeAlert | UIUserNotificationTypeBadge);
UIUserNotificationSettings *settings = [UIUserNotificationSettings settingsForTypes:allNotificationsType categories:nil];
[application registerUserNotificationSettings:settings];
[application isRegisteredForRemoteNotifications];
return YES;
}
-(void)applicationDidEnterBackground:(UIApplication *)application {
[[FIRMessaging messaging] disconnect];
NSLog(@"Disconnect from FCM");
}
- (void)applicationDidBecomeActive:(UIApplication *)application {
[self connectToFirebase];
}
- (void) application:(UIApplication *) application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:( void (^)(UIBackgroundFetchResult))completionHandler{
// Pring The Message Id
NSLog(@"Mesage Id : %@",userInfo[@"gcm.message_id"]);
// Print Full Message
NSLog(@"%@",userInfo);
}
#pragma mark -- Custom Firebase code
- (void)tokenRefreshCallback:(NSNotification *) notification{
NSString *refreshedToken = [[FIRInstanceID instanceID] token];
NSLog(@"IstanceID token: %@", refreshedToken);
// Connect To FCM since connection may have failed when attempt before having a token
[self connectToFirebase];
}
-(void) connectToFirebase{
[[FIRMessaging messaging] connectWithCompletion:^(NSError * _Nullable error)
{
if ( error != nil)
{
NSLog(@"Unable to Connect To FCM. %@",error);
}
else
{
NSLog((@"Connected To FCM"));
}
}];
}
当我使用与 Xcode
连接的 iPhone 运行上述代码时,当我从 Firebase 控制台发送消息时遇到以下问题
When i run the above code using my iPhone connected with Xcode
i am facing the following issues when i send a message from Firebase Console
1).当应用程序处于前台(活动)时,日志显示以下消息
1). when the app is in foreground (active), Log shows the below message
Mesage Id : (null){
CustommData = "First Message";
"collapse_key" = "abcd.iospush.FireBasePush";
from = 555551391562;
notification = {
badge = 4;
body = "Test Message";
e = 1;
sound = default;
sound2 = default;
};
}
注意 Message Id
为 null
.
2).我的手机在通知中心中没有显示任何通知,无论应用程序处于前台、后台还是关闭状态
2). My phone doesn't show any notification in Notification Centre whether App is in Foreground , Background or Closed
我希望用户在应用处于后台、前台或关闭时接收推送通知
I want user to receive push notifications when App is in Background , Foreground or Closed
您必须调用 [[UIApplication sharedApplication] registerForRemoteNotifications];
才能正确注册远程通知.
You must call [[UIApplication sharedApplication] registerForRemoteNotifications];
to properly register for remote notifications.
为后台使用配置远程通知
您是否已将应用的后台模式配置为接受远程通知?你可以通过点击:Project Name -> Capabilities -> Background Modes
Have you configured your app's background modes to accept remote notifications? You can do this by clicking: Project Name -> Capabilities -> Background Modes
打开它,然后勾选远程通知旁边的框,如下面的屏幕截图所示.
Turn this on and then tick the box beside Remote Notifications as seen in the screenshot below.
这篇关于未使用 firebase 和 Objective C 接收推送通知的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!