![](/img/trans.png)
[英]Ionic Push FCM iOS - get device token (not firebase token)
[英]Firebase: How to translate a device token into a FCM token
我正在尝试使用Firebase进行推送通知。 但是,我遇到了障碍,即我无法在iOS中执行该操作。 我尝试了两种方法
Messaging.messaging().setAPNSToken(deviceToken, type: .prod) and InstanceID.instanceID().setAPNSToken(deviceToken, type: InstanceIDAPNSTokenType.sandbox)
在第二
application(_ application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data)
带有Firebase
导入。
我该怎么办?
编辑:这是一个补充信息,错误消息是这样的。 无法获取默认令牌错误Domain = com.firebase.iid代码= 1003我搜索了“(空)” ,但没有相关信息。
所以你接近了。 这是Firebase 4.0版本的Cloud Messaging中目前发生的情况...
当您调用application.registerForRemoteNotifications()
,iOS将请求APNs证书,就像任何其他iOS应用程序一样。
假设您尚未关闭(可能尚未关闭)方法,Firebase会自动以其自己经过didRegisterForRemoteNotificationsWithDeviceToken
方法将APNs令牌交换为FCM令牌。
当交换完成后,火力地堡可以让你的应用程序知道。 过去,这样做的唯一方法是创建类型为kFIRMessagingRegistrationTokenRefreshNotification
的NSNotification。 但是这些天,它也可以通过MessagingDelegate
通知您。 因此,最简单的方法是通过调用...来声明您的AppDelegate消息传递委托。
Messaging.messaging().delegate = self
...然后实现messaging(_:didRefreshRegistrationToken)
方法。
func messaging(_ messaging: Messaging, didRefreshRegistrationToken fcmToken: String) { print("Look! I have an FCM token! \\(fcmToken)") }
因此,tl; dr是您不需要手动将APNs令牌交换为FCM令牌,只需要设置您的代理即可在FCM库为您完成此操作时收到通知。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.