【问题标题】:How to call appdelegate.swift after logout in ios swift?ios swift中注销后如何调用appdelegate.swift?
【发布时间】:2020-07-10 19:31:59
【问题描述】:

我一直在研究 FCM 令牌。最初,我可以注册 FCM 令牌并从 FCM 接收令牌。 我的问题是在注销时,我一直在从后端调用删除 FCM 令牌 API 调用,它会从设备中删除令牌。删除 FCM 令牌后,它移动到登录页面控制器,但我无法再次注册 FCM 令牌。登录时,我需要将 FCM 令牌与登录 API 调用一起传递。

这是我用来在登录 viewController 中获取 FCM 令牌的代码:

       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 token?

【问题讨论】:

  • 你能贴出你在注销时所做的代码吗?

标签: ios swift uiviewcontroller firebase-cloud-messaging appdelegate


【解决方案1】:

将其保存在默认值/全局变量中

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

然后在任何地方访问它

【讨论】:

  • 是否会在FCM中注册
  • 假设你只在登录操作中这样做
  • 它不起作用。因为,我在应用程序端的 SDK 中的注销功能。我从 sdk 端注销。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-11-10
  • 1970-01-01
  • 2016-12-29
  • 1970-01-01
  • 2016-07-21
  • 2015-05-11
  • 1970-01-01
相关资源
最近更新 更多