Уведомление в iOS с использованием нового Firebase Messaging SDK

Недавно Google анонсировал новый Firebase SDK с гораздо большим количеством функций. Итак, я ищу отличную документацию о том, как реализовать функцию удаленного уведомления с использованием нового Firebase Messaging SDK (FCM) в iOS.

Заранее большое спасибо.

 Nitin Gohel31 мая 2016 г., 11:02
Почему вы не делаете Google, прежде чем вопрос. Firebase предоставляет пошаговое руководство, чтобы потратить некоторое время на изучение и чтение:firebase.google.com/docs/cloud-messaging
 Sagar Unagar31 мая 2016 г., 11:07
@NitinGohel Я уже сделал с этим, но это не работа для меня. Есть ли у вас собственный пример проекта?
 Sagar Unagar01 июн. 2016 г., 10:33
@NitinGohel мое приложение аварийно завершает работу в следующих строках,- (void)connectToFcm { [[FIRMessaging messaging] connectWithCompletion:^(NSError * _Nullable error) { if (error != nil) { NSLog(@"Unable to connect to FCM. %@", error); } else { NSLog(@"Connected to FCM."); } }]; }  Ошибка:Завершение работы приложения из-за необработанного исключения «NSInvalidArgumentException», причина: «+ [NSData gtm_dataByGzippingData:]: нераспознанный селектор, отправленный в класс 0x10fd1f110»  Есть ли у вас предложения?
 evanescent02 июн. 2016 г., 02:02
Можете ли вы опубликовать всю трассировку стека? Это похоже на ошибку в библиотеке. Также вы можете поднять билет здесьgithub.com/google/gcm/issues

Ответы на вопрос(1)

Интеграция без CocoaPods

Сначала прочтите Firebase Doc. =>Firebase Doc

Зарегистрировать проект на Firebase здесь =>Зарегистрировать проект здесь

Получите файл GoogleService-Info.plist здесь => project => settings => General

GoogleService-Info.plist падение файла в вашем проекте.

установить Уведомления .p12 Сертификаты (Производство и разработка) в Firebase => проект => настройки => Облачные сообщения

Загрузите Firebase SDK здесь =>Firebase SDK Скачать

Создайте папку SDK в своем проекте и поместите в нее все папки SDK.

Теперь добавьте эту платформу в свой Xcode => libicucore.tbd

Включите фоновые режимы в Xcode => Projects => Capabilities => Background Mode ON => RemoteNotification

В Objective-c ваш файл Appdelegate.m

#import "AppDelegate.h"
#import "Firebase.h"
#import "AFNHelper.h"

@interface AppDelegate (){
    
    NSString *InstanceID;
}
@property (nonatomic, strong) NSString *strUUID;
@property (nonatomic, strong) NSString *strDeviceToken;
@end
@implementation AppDelegate

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    
    UIUserNotificationType allNotificationTypes =
    (UIUserNotificationTypeSound | UIUserNotificationTypeAlert | UIUserNotificationTypeBadge);
    UIUserNotificationSettings *settings =
    [UIUserNotificationSettings settingsForTypes:allNotificationTypes categories:nil];
    [[UIApplication sharedApplication] registerUserNotificationSettings:settings];
    [[UIApplication sharedApplication] registerForRemoteNotifications];

    [FIRApp configure];
   
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(tokenRefreshNotification:) name:kFIRInstanceIDTokenRefreshNotification object:nil];
    
    return YES;
}
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler {
    
    NSLog(@"Message ID: %@", userInfo[@"gcm.message_id"]);
    [[FIRMessaging messaging] appDidReceiveMessage:userInfo];
    
    NSLog(@"userInfo=>%@", userInfo);
}
- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {
    
    [[FIRInstanceID instanceID] setAPNSToken:deviceToken type:FIRInstanceIDAPNSTokenTypeProd];
    NSLog(@"deviceToken1 = %@",deviceToken);
    
}
- (void)tokenRefreshNotification:(NSNotification *)notification {
   NSLog(@"instanceId_notification=>%@",[notification object]);
    InstanceID = [NSString stringWithFormat:@"%@",[notification object]];
   
 [self connectToFcm];  
}

- (void)connectToFcm {
    
    [[FIRMessaging messaging] connectWithCompletion:^(NSError * _Nullable error) {
        if (error != nil) {
            NSLog(@"Unable to connect to FCM. %@", error);
        } else {
            
            // you can send your token here with api or etc.... 
                   
        }
}

 Sanandiya Vipul24 июн. 2016 г., 05:47
Тогда каков твой вопрос? @justColbs
 justColbs23 июн. 2016 г., 00:16
Почему вы добавилиdidRegisterForRemoteNotificationsWithDeviceToken функционировать даже тогда, когда пример из Firebase не требовал этого? Пример:github.com/firebase/quickstart-ios
 justColbs23 июн. 2016 г., 17:22
Я понимаю. Я не пытаюсь отправлять уведомления с устройства на устройство, а скорее с консоли уведомлений на устройство. Я не думаю, что мне это нужно. @sanandiyavipul
 Sanandiya Vipul23 июн. 2016 г., 05:41
это наиболее важно в пожарной базе. здесь я передаю токен устройства Firebase, а затем возвращаю токен firebase, и этот токен Firebase полезен для отправки push-уведомления любому устройству.
 Sanandiya Vipul24 июн. 2016 г., 05:51
@justColbs В этой демоверсии отправляется Push-уведомление всем устройствам, а не устройствам на устройства.
 justColbs24 июн. 2016 г., 05:48
мне нужно добавить этот код, если единственное, что я хочу сделать, это отправлять push-уведомления из консоли Firebase Notifications на все устройства? Я не хочу отправлять уведомления с устройства на устройство.

Ваш ответ на вопрос