Жетон обновления Firebase

ios objective-c firebase firebase-cloud-messaging

4746 просмотра

3 ответа

517 Репутация автора

Используя метод

[FIRInstanceID tokenWithAuthorizedEntity:scope:options:handler]

Я не совсем уверен, для чего нужны параметры? Что такое уполномоченный орган и действие? Также я передаю токен APNS от Apple этому методу?

Автор: mKane Источник Размещён: 18.07.2016 07:19

Ответы (3)


1 плюс

103 Репутация автора

Вы можете сделать это так.

[[FIRInstanceID instanceID] setAPNSToken:deviceToken type:FIRInstanceIDAPNSTokenTypeProd];

[[FIRInstanceID instanceID] tokenWithAuthorizedEntity:gcmSenderID scope:kFIRInstanceIDTokenRefreshNotification options:nil handler:^(NSString * _Nullable token, NSError * _Nullable error) {

    NSLog(@"GCM Registration token = %@",token);
    NSLog(@"GCM Registration error = %@",error);        
}];
Автор: Maheep Размещён: 22.07.2016 09:04

7 плюса

1117 Репутация автора

  1. AUTHORIZED_ENTITY - в основном запрашивается идентификатор проекта Google. Он числовой, и если вы уже включили GCM в свой проект ранее, это будет GCM_SENDER_ID (что-то вроде «568520103762»). Проверьте ваш Google-info.plist, чтобы найти его.
  2. ОБЛАСТЬ ПРИМЕНЕНИЯ - kFIRInstanceIDScopeFirebaseMessaging
  3. ОПЦИИ - @ {@ "apns_token": deviceToken} (вы получите DeviceToken в методе didRegisterForRemoteNotifications)
  4. HANDLER - поймать токен, если вы получили токен, или поймать ошибку здесь. Если токен равен nil, дождитесь токена в методе «tokenRefreshNotification», который будет вызываться автоматически, если токен равен нулю в [FIRInstanceID tokenWithAuthorizedEntity: scope: options: handler]

Пример:

 if (![[FIRInstanceID instanceID] token]) {
    [[FIRInstanceID instanceID] tokenWithAuthorizedEntity:_gcmSenderId scope:kFIRInstanceIDScopeFirebaseMessaging options:_registrationOptions handler:^(NSString * _Nullable token, NSError * _Nullable error) {

        // Fetch the token or error
    }];

}
Автор: HeadOnn Размещён: 28.09.2016 08:33

0 плюса

1640 Репутация автора

Версия для Swift(на основе ответа @ HeadOnn ):

func application(_ application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data)
{
    Messaging.messaging().setAPNSToken(deviceToken, type: .prod) // may be excess

    guard let plistPath = Bundle.main.path(forResource: "GoogleService-Info", ofType: "plist"),
        let options = FirebaseOptions(contentsOfFile: plistPath)
    else { return }

    InstanceID.instanceID().token(withAuthorizedEntity: options.gcmSenderID, 
            scope: InstanceIDScopeFirebaseMessaging,
            options: ["apns_token": deviceToken])
    { (token, error) in
        // handle token and error
    }
}
Автор: General Failure Размещён: 06.09.2019 11:33
Вопросы из категории :
32x32