Cha*_*lha 1 ios firebase swift3 firebase-cloud-messaging
由于后端的要求,这是我第一次使用 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()
Run Code Online (Sandbox Code Playgroud)
在那之后,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
}
Run Code Online (Sandbox Code Playgroud)
不,问题是当它请求通知许可而用户拒绝它时,我将如何获得 FCM,当用户注册或登录时,我将发送到后端。
小智 7
无论用户对授权请求的响应如何,都会生成 FCM 令牌 - 如果响应时间足够长,则将在给出响应之前生成 FCM 令牌。
在用户授予许可之前,通知不会起作用,但生成 FCM 令牌并不依赖于获得许可。
请注意:我没有在任何地方找到这个文档,而是通过我自己的测试。我已经在 iOS 10.3.1 和 11.0 上进行了测试。
第一次生成令牌时调用了Messaging委托didRefreshRegistrationToken,我怀疑问题是您没有设置委托
Messaging.messaging().delegate = self
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1795 次 |
| 最近记录: |