ios - Firebase 推送通知不适用于单个设备 ios,但适用于用户段
问题描述
我正在使用 firebase 推送通知并使用离子/电容器开发移动应用程序。我注册推送通知并取回这样的令牌......
PushNotifications.requestPermission().then( result => {
if (result.granted) {
PushNotifications.register();
}
});
PushNotifications.addListener('registration',
(token: PushNotificationToken) => {
alert('Push registration success, token: ' + token.value);
console.log(token.value);
}
);
在firebase控制台中,当我在用户段中定位我的应用程序时,我可以成功发送和接收通知,但是当我尝试通过使用发送测试消息复制和粘贴令牌来定位单个设备时,我没有收到推送通知。注意:这对我在 Android 上运行良好。
令牌看起来像这样...... BAAEF129E8F596F1305D0FEA2F50E21B2768FEFCA83CF19602CA0183077E441D
解决方案
Capacitor 使用 APNS 进行推送,您获得的令牌是 APNS 令牌,而这些令牌不适用于 FCM。不确定您是如何将 FCM 集成到 Capacitor 中的,但您应该将 APNS 令牌转换为 FCM 令牌。
是这样的
func application(_ application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data) {
Messaging.messaging().apnsToken = deviceToken
InstanceID.instanceID().instanceID { (result, error) in
if let error = error {
NotificationCenter.default.post(name: Notification.Name(CAPNotifications.DidFailToRegisterForRemoteNotificationsWithError.name()), object: error)
} else if let result = result {
NotificationCenter.default.post(name: Notification.Name(CAPNotifications.DidRegisterForRemoteNotificationsWithDeviceToken.name()), object: result.token)
}
}
}
有关更多信息,您可以查看有关如何将 FCM 集成到电容器中的指南。
推荐阅读
- qt - QML:防止快速回到触摸事件的边界以进行轻弹
- python - 如何比较熊猫中不同列的值
- python - Scrapy to df 如何不覆盖数据
- java - REST API 使用动态 JSON
- c# - 验证消息没有收到来自控制器的错误
- python - 在 Python 中从一种方法调用变量到另一种方法
- powershell - 创建 AD 批量脚本问题
- sql - 查询每个职位带最低薪员工的id
- json - 在 rust 中转换 json,类似 pandas explode 和 lamda
- json - 在另一个powershell脚本文件中调用powershell脚本时如何使用嵌套引号