我正在与远程Web API开发人员合作,目前我们正在努力将推送消息从服务器发送到iOS和Android设备。我们通过OAuth API发送设备令牌。 (对于iOS,设备令牌是通过在AppDelegate发布时使用APNS服务注册远程服务获得的)。奇怪的是,Android可以获得推送通知,但iOS设备不会。但是当我尝试使用Firebase控制台时 - >成长 - >通知 - >新消息 - >并且针对所有iOS设备,所有注册到推送通知的iOS设备都会收到推送通知。你能帮我指出问题出在哪里吗? Web服务器正在使用nodeJs。
我做过的事情,我按照tutorial完成的事情:
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
// Override point for customization after application launch.
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 })
// For iOS 10 data message (sent via FCM
Messaging.messaging().delegate = self
} else {
let settings: UIUserNotificationSettings =
UIUserNotificationSettings(types: [.alert, .badge, .sound], categories: nil)
application.registerUserNotificationSettings(settings)
}
application.registerForRemoteNotifications()
FirebaseApp.configure()
return true
}
从所有这些准备工作中,如果我在真实iOS设备中运行应用程序,然后将其锁定,我在Firebase iOS应用程序中向iOS设备广播的任何消息都将显示在锁定屏幕通知中。但不是来自网络API的消息指向应用程序中记录的帐户(指向使用该帐户登录的所有Android和iOS设备 - 它在Android设备上显示,但不适用于iOS设备。)
我是FCM的新手。我通常使用APNS。我可能不太了解修复服务器端的条款,因为我不太了解nodeJs,所以如果你对服务器端有一些建议,请详细说明,所以我可以用web API dev。谢谢你的帮助。
答案 0 :(得分:1)
原来我需要发送到服务器的不是APNS令牌,而是Firebase令牌,可在此处找到:
https://firebase.google.com/docs/cloud-messaging/ios/client#monitor-token-generation