【发布时间】:2017-09-21 04:44:15
【问题描述】:
由于后端的要求,这是我第一次使用 firebase,所以如果您不理解这个问题或者它没有任何意义,请告诉我。
我想要实现的是我需要一个Registration_ID,这是用户注册时的 FCM 令牌。所以这就是我在AppDelegate.swift > didFinishLaunchingWithOptions 中实现它的方式@
if #available(iOS 10.0, *) {
// For iOS 10 display notification (sent via APNS)
UNUserNotificationCenter.current().delegate = self
let authOptions: UNAuthorizationOptions = [.alert, .badge, .sound]
UNUserNotificationCenter.current().requestAuthorization(
options: authOptions,
completionHandler: {_, _ in })
} else {
let settings: UIUserNotificationSettings =
UIUserNotificationSettings(types: [.alert, .badge, .sound], categories: nil)
application.registerUserNotificationSettings(settings)
}
application.registerForRemoteNotifications()
在AppDelegate.swift之后我添加了这三个函数:
func application(_ application: UIApplication,
didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data) {
Messaging.messaging().apnsToken = deviceToken as Data
}
func messaging(_ messaging: Messaging, didRefreshRegistrationToken fcmToken: String) {
print("Firebase registration token: \(fcmToken)")
}
func application(application: UIApplication,
didRegisterForRemoteNotificationsWithDeviceToken deviceToken: NSData) {
Messaging.messaging().apnsToken = deviceToken as Data
}
没有问题,当它请求通知许可而用户拒绝它时,我将如何获得 FCM,当用户注册或登录时我将发送到后端。
【问题讨论】:
-
权限设置不正确,无法获取token。
标签: ios firebase swift3 firebase-cloud-messaging