Есть ли кто-нибудь, кто может уточнить требуемые методы для FCM, используя Swift 4.2 с целью IOS> = 10, чтобы упростить: 1) отсутствие прямых «данных» сообщений….только уведомления / предупреждения через APNS 2) Я оставляю Swizzling включенным, хотя некоторые учебные пособия (без объяснения причин) говорят мне отключить его
Я обнаружил, что проблемы с устареванием IOS и некоторые ошибки в документации насторона FCM делает этот способ более запутанным, чем нужно.
можем ли мы получить простую матрицу, такую как: AppState |закрыто |фон |foreground |
userAction: нет (простое поступление сообщения в IOS) отклонить уведомление нажать уведомление выбрать действие уведомления открыть приложение напрямую - не задействован метод уведомления
, вызываемый в приведенном выше сценарии:бла…
также кажется, что FCM создает свой собственный токен независимо от того, отправил ли APNS его еще;поэтому мне нужна другая логика, чтобы определить, предоставил ли пользователь разрешения, прежде чем мой сервер может предположить, что токен FCM будет работать вообще ... Я думаю, я просто не буду отправлять токен FCM на сервер, пока не буду уверен, что у меня есть токен APNS....???
Кроме того, документы FCM проясняют, что видимые для пользователя (то есть стиль оповещения / уведомления) доставляются через APNS / Apple.
Поэтому я могу предположить, что FCMсообщения не будут поступать, пока ПОСЛЕ Apple не отправит мне токен APNS.
Но я не могу прочитать или получить токен Apple из метода делегата FCM.
Этот код всегда возвращает пустую строкудля apns, поэтому я не могу определить, находится ли мое приложение в надежном состоянии или нет:
@ objc func message (_ messaging: Messaging, didReceiveRegistrationToken fcmToken: String) {print ("Жетон регистрации Firebase: (fcmToken)) ") let apnsTokenData = messaging.apnsToken let apnsToken = apnsTokenData? .reduce (" ", {$ 0 + String (формат:"% 02X ", $ 1)}) ??"" print ("apnsToken: (apnsToken)")
Спасибо за любые разъяснения!