Конфигурация FCM ios - PullRequest
       21

Конфигурация FCM ios

0 голосов
/ 05 октября 2018

Я пытаюсь использовать FCM для push-уведомлений.Я следую за документами и пытаюсь использовать:

InstanceID.instanceID().instanceID { (result, error) in
    if let error = error {
        print("Error fetching remote instange ID: \(error)")
    } else if let result = result {
        print("Remote instance ID token: \(result.token)")
        self.instanceIDTokenMessage.text  = "Remote InstanceID token: \(result.token)"
    }
}

, как указано в документах, но я не уверен, куда мне его поместить, должно ли оно быть внутри didFinishLaunchingWithOptions?

Я получаю эту ошибку компиляции:

Статический член 'instanceID' нельзя использовать для экземпляра типа 'InstanceID'

1 Ответ

0 голосов
/ 05 октября 2018

Добавить наблюдателя в didFinishLaunchingWithOptions.

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
    NotificationCenter.default.addObserver(self, selector: #selector(self.tokenRefreshNotification), name: NSNotification.Name.InstanceIDTokenRefresh, object: nil)
}

Вызовите его внутри didRegisterForRemoteNotificationsWithDeviceToken

func application(_ application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data) {
    self.connectToFcm()
}

Метод

@objc func tokenRefreshNotification(_ notification: Notification) {
    self.connectToFcm()
}

Создать 1 функцию.

func connectToFcm() {
    InstanceID.instanceID().instanceID { (result, error) in
        if let error = error {
            print("Error fetching remote instange ID: \(error)")
        }
        else {
            print("FCM Token = \(String(describing: result?.token))")
            print("Remote instance ID token: \(result.token)")
            self.instanceIDTokenMessage.text  = "Remote InstanceID token: \(result.token)"
        }
    }
}
...