Как позвонить appdelegate.swift после выхода из системы ios swift? - PullRequest
0 голосов
/ 30 марта 2020

Я работал над токеном FCM. Изначально я могу зарегистрировать токен FCM и получить токен от FCM. Моя проблема заключается в том, что при выходе из системы я вызываю команду delete API FCM token из бэкэнда, и он удаляет токен с устройства. После удаления токена 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 после регистрации из

1 Ответ

0 голосов
/ 30 марта 2020

Сохраните его в значениях по умолчанию / global vaiable

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

и получите доступ к нему где угодно

...