【问题标题】:How to update table view when IOS app receives FCM notificationIOS 应用收到 FCM 通知时如何更新表格视图
【发布时间】:2020-12-07 05:43:50
【问题描述】:

我是 Swift 和 Firebase 的新手,我无法更新我的表格。我的应用程序在主页上有一个表格视图。我希望应用程序会在我每次收到前台和后台 FCM 通知时更新表格。

在前台,我将如何更新表格视图,当应用在前台收到 FCM 通知时,我应该执行哪些功能或操作来刷新或更新表格视图?

在后台,如何更新表格视图?一般来说,应用是自动刷新页面还是我自己也应该更新?

有人可以帮我解决这个问题吗?谢谢!

【问题讨论】:

    标签: swift xcode firebase-cloud-messaging


    【解决方案1】:

    您可以期望在 AppDelegate 的方法中传递推送通知。之后你可以发布一个 NSNotificationCenter 广播。

    func application(_ application: UIApplication, didReceiveRemoteNotification userInfo: [AnyHashable: Any],
                     fetchCompletionHandler completionHandler: @escaping (UIBackgroundFetchResult) -> Void) {
      NotificationCenter.default.post(name: "AppNotification", object: "myObject", userInfo: userInfo)
    }
    

    您的视图控制器可以观察和刷新您的表格视图。

    在您的视图控制器中:

    func viewDidLoad() {
        NotificationCenter.default.addObserver(self, selector: #selector(appnotification), name: "AppNotification", object: nil)
    }
    
    @objc func appnotification(notification: Notification) {
        print(notification.userInfo ?? "")
        yourTableView.reloadData()
    }
    

    【讨论】:

    • 对于前台更新,你建议我每秒更新一次表格还是有更聪明的方法?
    • 你可以通过 NSNotification 回调来更新,你为什么要每秒更新一次?当应用程序处于前台并收到通知时,将调用 AppDelegate 处理程序,该处理程序发布 NSNotification 广播,该广播在您的 ViewController 中接收,您可以刷新表格视图或做任何您想做的事情。
    猜你喜欢
    • 1970-01-01
    • 2019-07-05
    • 2019-08-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-22
    • 2019-06-19
    相关资源
    最近更新 更多