如何在 Swift 3 中处理 UNUserNotificationCenter 和 FIRMessaging w/Firebase 的委托?
How to deal with delegation of UNUserNotificationCenter and FIRMessaging w/ Firebase in Swift 3?
我正在尝试使用 Firebase 在我的应用程序中实现推送通知,但是在按照他们的文档进行操作时,我必须添加以下代码行:
if #available(iOS 10.0, *) {
let authOptions: UNAuthorizationOptions = [.alert, .badge, .sound]
UNUserNotificationCenter.current().requestAuthorization(options: authOptions, completionHandler: {_, _ in})
UNUserNotificationCenter.current().delegate = self
FIRMessaging.messaging().remoteMessageDelegate = self
} else {
let settings: UIUserNotificationSettings = UIUserNotificationSettings(types: [.alert, .badge, .sound], categories: nil)
application.registerUserNotificationSettings(settings)
}
添加此代码后,应用程序将无法编译,并且会向我抛出一个错误,让我知道我
cannot assign value of type AppDelegate
to type
FirMessagingDelegate
我
cannot assign value of type AppDelegate to type
UNUserNotificationCenterDelegate.
所以很自然地,我将 FIRMessagingDelegate
和 UNUserNotificationCenterDelegate
添加到我的应用程序中,但是 FIRMessagingDelegate
不允许应用程序编译说
type AppDelegate does not conform to protocol 'FirMessagingDelegate'.
有什么想法吗?我还没有设法找到其他人遇到此错误的任何其他情况,并且在 Google 的文档中,甚至没有添加这两个委托。
你走在正确的轨道上,还有一件事是让你的 AppDelegate class 符合 'FirMessagingDelegate' 协议,通过在某处实现 applicationReceivedRemoteMessage
函数是你的 AppDelegate class 因为这里描述的 'FirMessagingDelegate' 协议需要它 Firebase Doc
我正在尝试使用 Firebase 在我的应用程序中实现推送通知,但是在按照他们的文档进行操作时,我必须添加以下代码行:
if #available(iOS 10.0, *) {
let authOptions: UNAuthorizationOptions = [.alert, .badge, .sound]
UNUserNotificationCenter.current().requestAuthorization(options: authOptions, completionHandler: {_, _ in})
UNUserNotificationCenter.current().delegate = self
FIRMessaging.messaging().remoteMessageDelegate = self
} else {
let settings: UIUserNotificationSettings = UIUserNotificationSettings(types: [.alert, .badge, .sound], categories: nil)
application.registerUserNotificationSettings(settings)
}
添加此代码后,应用程序将无法编译,并且会向我抛出一个错误,让我知道我
cannot assign value of type
AppDelegate
to typeFirMessagingDelegate
我
cannot assign value of type AppDelegate to type UNUserNotificationCenterDelegate.
所以很自然地,我将 FIRMessagingDelegate
和 UNUserNotificationCenterDelegate
添加到我的应用程序中,但是 FIRMessagingDelegate
不允许应用程序编译说
type AppDelegate does not conform to protocol 'FirMessagingDelegate'.
有什么想法吗?我还没有设法找到其他人遇到此错误的任何其他情况,并且在 Google 的文档中,甚至没有添加这两个委托。
你走在正确的轨道上,还有一件事是让你的 AppDelegate class 符合 'FirMessagingDelegate' 协议,通过在某处实现 applicationReceivedRemoteMessage
函数是你的 AppDelegate class 因为这里描述的 'FirMessagingDelegate' 协议需要它 Firebase Doc