Я работаю над токеном FCM. Первоначально я могу зарегистрировать токен FCM и получить токен от FCM. Моя проблема заключается в том, что при выходе из системы я вызываю API-интерфейс удаления токена FCM из бэкэнда, и он удаляет токен с устройства. После удаления токена FCM он перемещается на контроллер страницы входа, но я не смог снова зарегистрировать токен FCM. При входе в систему мне нужно передать токен FCM вместе с вызовом API входа.

Вот код, который я использовал для получения токена FCM в логине viewController:

       var fcmval :String?

override func viewDidLoad() {
    super.viewDidLoad()

    // Do any additional setup after loading the view.

   NotificationCenter.default.addObserver(self, selector: #selector(self.fcmTokenUpdated(notification:)), name: Notification.Name("FCMToken"), object: nil)


}

deinit {
    //Don't forget to removeObserver
    NotificationCenter.default.removeObserver(self, name: Notification.Name("FCMToken"), object: nil)
}

@objc func fcmTokenUpdated(notification:Notification){


    if let userInfo = notification.userInfo as? [String: String]{

        if let c = userInfo["token"] {

            print(c)

            fcmval = c

            print("fcm token from app view controller:::", fcmval)

             let baseURL = "https://url"
             A8FlowBuilder(self).showLoginView(url: baseURL, fcm: fcmval ?? "")
        }

    }
}

override func viewDidAppear(_ animated: Bool) {

     NotificationCenter.default.addObserver(self, selector: #selector(self.fcmTokenUpdated(notification:)), name: Notification.Name("FCMToken"), object: nil)
}

Как зарегистрировать токен FCM после выхода из системы?

0
PvUIDev 30 Мар 2020 в 15:20
Можете ли вы опубликовать код того, что вы делаете при выходе из системы?
 – 
khush
9 Апр 2020 в 16:09

1 ответ

Сохраните его в defaults/global vaiable

@objc func fcmTokenUpdated(notification:Notification){  
  if let userInfo = notification.userInfo as? [String: String] , let c = userInfo["token"] {
       UserDefaults.standard.set(c,"Token")
   }
}

Затем получить к нему доступ в любом месте

0
Sh_Khan 30 Мар 2020 в 15:25
Будет ли он зарегистрирован в FCM
 – 
PvUIDev
30 Мар 2020 в 15:35
Предполагается, что вы делаете это только при входе в систему
 – 
Sh_Khan
30 Мар 2020 в 15:36
Это не работает. потому что моя функция выхода из системы в SDK на стороне приложения. Я выхожу из системы со стороны SDK.
 – 
PvUIDev
30 Мар 2020 в 15:59