一天前,我用来测试推送通知的iPhone收到了推送通知,但由于某种原因,今天它们没有。
当它工作时,我会调用完成处理程序以在此函数中显示通知:
@available(iOS 10, *)
extension AppDelegate : UNUserNotificationCenterDelegate {
func userNotificationCenter(_ center: UNUserNotificationCenter,
willPresent notification: UNNotification,
withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> Void) {
let userInfo = notification.request.content.userInfo
print("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~")
completionHandler([.alert, .badge, .sound])
}
但是,该函数似乎不再被调用。我看到打印的任何内容的唯一功能是这个:
extension AppDelegate : FIRMessagingDelegate {
// Receive data message on iOS 10 devices while app is in the foreground.
func applicationReceivedRemoteMessage(_ remoteMessage: FIRMessagingRemoteMessage) {
print("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!")
print(remoteMessage.appData)
}
}
我从Firebase向iOS设备发送通知文档中获得了所有这些功能。我真正想要的只是能够从Apple的APNs服务器接收推送通知。我在控制台APNs token retrieved: 32 bytes
中得到了这一行,而且推送通知昨天也在工作,所以我不确定为什么它停止了。
我唯一怀疑让它停止工作的是我删除了该应用程序并将其重新安装到 iPhone 上,除此之外,我根本没有弄乱AppDelegate
中的代码。任何人都可以帮我弄清楚为什么我的推送通知可能停止发送吗?
请注意,我正在使用Firebase消息topics
从我的云功能发送这些消息,我可以确认它是否正确发送消息,因为我在上面的第二个功能中接收了它们,只是不像昨天收到的那样在第一个函数中。我正在使用admin.messaging().sendToTopic(pet_Id, payload, options);
发送通知。
这是我完整的AppDelegate.swift文件,如果有人可以帮助我弄清楚,我将不胜感激!
我有类似的东西,
这是我在这里的答案 - 火碱推送通知问题
这可能是问题所在,
我关闭了推送并从苹果开发中心删除了证书,并重新创建了它们,这使一切正常。
">我还将这一行代码设置为,
FIRInstanceID.instanceID().setAPNSToken(deviceToken as Data, type: FIRInstanceIDAPNSTokenType.sandbox)
当我推送到应用商店时,我会将其更改为.prod
。