如何在 iOS 的自定义 ViewController 中集成 Firebase 通知?

Posted

技术标签:

【中文标题】如何在 iOS 的自定义 ViewController 中集成 Firebase 通知?【英文标题】:How to integrate Firebase notifications in custom ViewController in iOS? 【发布时间】:2021-05-07 12:09:19 【问题描述】:

我正在尝试将 Firebase FCM 集成到我的 ios 应用中。按照他们的教程,我应该在AppDelegate 中执行此操作:

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: 
                [UIApplication.LaunchOptionsKey: Any]?) -> Bool 

    FirebaseApp.configure()
    Messaging.messaging().delegate = self
    
    UNUserNotificationCenter.current().delegate = self

    let authOptions: UNAuthorizationOptions = [.alert, .badge, .sound]
    UNUserNotificationCenter.current().requestAuthorization(
      options: authOptions,
      completionHandler: _, _ in )
    
    application.registerForRemoteNotifications()
    
    return true

这种方法的问题在于,当应用启动时,系统会提示用户允许/拒绝访问通知。根据 Apple 的说法,向您的用户解释他们为什么需要通知是一个很好的做法,这样他们就可以更好地决定是否启用它们,这就是我想要做的。我想创建一个自定义视图控制器,我首先解释为什么我需要通知,然后我问他们是否要启用。问题是我不能从我的 VC 中执行 application.registerforRemoteNotifications(),因为我无权访问那里的应用程序。我该怎么做?

【问题讨论】:

【参考方案1】:

您可以随时在您的应用程序中使用共享应用程序对象调用:

UIApplication.shared.registerForRemoteNotifications()

【讨论】:

以上是关于如何在 iOS 的自定义 ViewController 中集成 Firebase 通知?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 iOS 的自定义 ViewController 中集成 Firebase 通知?

如何在 iOS 中构建由现有控件组成的自定义控件?

如何在ios中的自定义UITableViewCell中添加轮播视图

iOS:如何保存在应用程序中创建的自定义对象

如何在iOS7中使用具有动态文本大小的自定义字体

如何在一个 tableView 中使用两个不同的自定义单元格?使用情节提要,iOS 7