Ios 为什么可以';我不能在Swift5中读取推送消息数据吗?
我有一个问题,此时无法读取推送消息数据。我通常会收到信息 我可以在应用程序处于前台时接收,也可以在按下Home(主页)按钮时在后台接收 但是我在日志中看不到消息数据 AppDelegate.swiftIos 为什么可以';我不能在Swift5中读取推送消息数据吗?,ios,swift,firebase,push-notification,Ios,Swift,Firebase,Push Notification,我有一个问题,此时无法读取推送消息数据。我通常会收到信息 我可以在应用程序处于前台时接收,也可以在按下Home(主页)按钮时在后台接收 但是我在日志中看不到消息数据 AppDelegate.swift class AppDelegate:UIResponder、UIApplicationDelegate、UnuseNotificationCenterDelegate、MessagingDelegate{ ... func应用程序(application:UIApplication,DidRece
class AppDelegate:UIResponder、UIApplicationDelegate、UnuseNotificationCenterDelegate、MessagingDelegate{
...
func应用程序(application:UIApplication,DidReceiveMotonification数据:[AnyHashable:Any]){
//如果您在应用程序处于后台时收到通知消息,
//在用户点击启动应用程序的通知之前,不会触发此回调。
//TODO:处理通知的数据
//禁用swizzling后,您必须让消息传递了解消息,以便进行分析
警卫
将aps=data[AnyHashable(“notification”)]设为NSDictionary,
将alert=aps[“alert”]设为NSDictionary,
将body=警报[“body”]设为?字符串,
将title=警报[“title”]设为?字符串
否则{
//在这里处理任何错误
返回
}
Log.Info(“标题:\(标题)\n正文:\(正文)”)
Messaging.Messaging().appDidReceiveMessage(数据)
//打印完整消息。
日志信息(数据)
}
...
func消息传递(u消息传递:消息传递,didReceiveRegistrationToken fcmToken:String){
Log.Info(“fcmToken\(fcmToken)”)
}
func消息传递(uMessaging:messaging,didReceive remoteMessage:MessagingRemoteMessage){
Log.Info(“remort\(remoteMessage.appData)”)
}
我发送的数据
{
notification : {
"title" : "test title.",
"body" : "test context."
},
data : {
"image" : "http://11.111.111.111:100000000/_img/sample_01.jpg",
"page_url" : "http://11.111.111.111:100000000/Point?address=",
"type" : "point"
}
}
任何功能都无法查看日志。我缺少什么?请告诉我有什么问题
编辑
我修改了错误的数据并更改了日志的位置。但是我身上没有任何日志 AppDelegate.swift
func应用程序(application:UIApplication,DidReceiveMemotentification数据:[AnyHashable:Any]){
//如果您在应用程序处于后台时收到通知消息,
//在用户点击启动应用程序的通知之前,不会触发此回调。
//TODO:处理通知的数据
//禁用swizzling后,您必须让消息传递了解消息,以便进行分析
//打印完整消息。
日志信息(数据)
警卫
将aps=data[AnyHashable(“notification”)]设为NSDictionary,
将body=aps[“body”]设为?字符串,
将title=aps[“title”]设为?字符串
否则{
//在这里处理任何错误
返回
}
Log.Info(“标题:\(标题)\n正文:\(正文)”)
Messaging.Messaging().appDidReceiveMessage(数据)
}
在firebase中发送测试消息
除了应用程序的
应用程序
功能外,我还有两个消息功能
功能。我不需要这些消息功能吗?这些功能从未向我显示过日志。这使用不同的功能解决了此问题
我用另一个函数解决了它,但我希望有另一个好的解决方案
我想知道根本问题是什么,这只是另一种选择
@可用(iOS 10,*)
func userNotificationCenter(center:UNUserNotificationCenter,
didReceive响应:UNNotificationResponse,
withCompletionHandler completionHandler:@escaping()->Void){
让数据=response.notification.request.content.userInfo
警卫
将aps=data[AnyHashable(“aps”)]设为NSDictionary,
将alert=aps[“alert”]设为NSDictionary,
将body=警报[“body”]设为?字符串
否则{
Log.Error(“这不是好数据”)
返回
}
日志信息(正文)
completionHandler()
}
您正在使用的方法在iOS 10中被弃用
通知框架将此方法替换为iOS 10以后更新的方法:
func userNotificationCenter(_ center: UNUserNotificationCenter,
didReceive response: UNNotificationResponse,
withCompletionHandler completionHandler: @escaping () -> Void)
通知框架的更多详细信息可供查阅我在您的数据中没有看到关键的“警报”,使用swift字典而不是NSDictionaryHi@JoakimDanielson没错,但我甚至看不到完整的数据。'Log.Info(数据)'将该log语句移动到函数的开头,如果guard语句失败,它将退出,其余的则不会executed@JoakimDanielson请看我修改的问题。@JoakimDanielson除了应用程序函数外,我还有两个消息函数。这不是必需的吗?这不是一个替代方法,这是应该采用的方法ce iOS10