не получает push-уведомление от firebase Но с приложением Pusher - PullRequest
0 голосов
/ 11 февраля 2019

я не получаю никаких уведомлений от firebase, но когда я тестирую приложение Pusher, я получаю уведомление.

это мои шаги, которые я сделал.помогите мне, если я сделал что-то не так.

1_ добавьте службу уведомлений, как показано ниже.

class NotificationService: UNNotificationServiceExtension {

var contentHandler: ((UNNotificationContent) -> Void)?
var bestAttemptContent: UNMutableNotificationContent?

override func didReceive(_ request: UNNotificationRequest, withContentHandler contentHandler: @escaping (UNNotificationContent) -> Void) {
    self.contentHandler = contentHandler
    bestAttemptContent = (request.content.mutableCopy() as? UNMutableNotificationContent)

    if let bestAttemptContent = bestAttemptContent {
        // Modify the notification content here...




        bestAttemptContent.title = "hello"
        bestAttemptContent.body = "this is test"


        contentHandler(bestAttemptContent)
    }
}

}

2 _ установите делегата уведомлений Center в себя делегатом приложения

        Messaging.messaging().delegate=self
        UNUserNotificationCenter.current().delegate = self

3_ токен устройства для отправки уведомления (я сохраняю его на сервере)

   func messaging(_ messaging: Messaging, didReceiveRegistrationToken fcmToken: String) {
    print("Firebase registration token: \(fcmToken)")

    let dataDict:[String: String] = ["token": fcmToken]
    NotificationCenter.default.post(name: Notification.Name("FCMToken"), object: nil, userInfo: dataDict)
    // TODO: If necessary send token to application server.
    // Note: This callback is fired at each app startup and whenever a new token is generated.
}

я отправляю этот FCMToken на сторону сервера (Java, весенняя загрузка)

4_ у меня естьвключено push-уведомление в Capabilities

5_ Я добавил файл .p12 в облачные сообщения о настройках проекта в консоли Firebase, но у меня есть большой вопрос для этого! ????я должен войти в firebase с учетной записью моего сервера?или сделать аккаунт для себя ??потому что я создал один для себя.

несколько советов:

мы команда, подобная серверной части (JAVA).web, android и ios

, которые работают с этим push-уведомлением на андроиде, но не на ios.

я думаю, что делаю что-то неправильно.

спасибоза чтение этой темы и помощь мне.

1 Ответ

0 голосов
/ 11 февраля 2019

Вот шаги для перекрестной проверки вашей проблемы,

  1. Должны быть включены возможности уведомлений.
  2. Сертификат, который вы создали в Apple Member Center, должен включать push-уведомление enter image description here
  3. В консоли Firebase перейдите в настройки -> настройки проекта -> облачные сообщения -> проверитьключ сервера
    1. Этот ключ и ключ, который вы дали команде сервера, должны совпадать
    2. Проверьте, добавлены или нет ключи аутентификации APN или сертификаты APN.
    3. Если выиспользуя сертификаты APNs, которые должны быть такими же, как вы сгенерировали в appId в центре участников enter image description here
  4. получить токен fcm из консоли xcode -> goзапустить консоль Firebase -> Grow -> Cloud Messaging -> Новое уведомление -> и попробовать выполнить тестирование на устройстве.Если вы получаете уведомление на стороне клиента (устройство) не имеет проблем.если не на стороне сервера, необходимо дважды проверить ключ сервера.
  5. Добавьте ваш googleServiceInfo.plist в ваш проект.добавьте обратный ключ в информацию о вашем приложении.
  6. в Appdelegate, настройте ваш firebase FirebaseApp.configure()

Обновите , согласно вашему вопросу в комментарии, я обновляю этот вопрос.Чтобы использовать расширение NotificationService, ваше уведомление должно включать свойство mutable-content в полезную нагрузку уведомления.используя fcm api, вы можете сделать это.поместите их в почтовый менеджер,

https://fcm.googleapis.com/fcm/send

в заголовках, добавьте свой ключ сервера (вы можете получить его из консоли Firebase)

enter image description here

в теле добавить эту полезную нагрузку к уведомлению о пожаре.это активирует расширение службы уведомлений.

{
    "notification": {
        "title": "1",
        "body": "",
        "click_action": "",
        "icon": "",
        "mutable_content": true,
        "content_available": true
    },
    "registration_ids":["add your fcm token"],
    "data": {}
}

enter image description here

Согласно учебному пособию: https://code.tutsplus.com/tutorials/ios-10-notification-service-extensions--cms-27550

enter image description here

...