我正在尝试从网站接收JSON推送。但我有一些问题。
这是我的推动:
> $this->parsepush->send( array( "channels" => ['test'], "data" => > $post_data ));
代码:
func application(application: UIApplication, didReceiveRemoteNotification userInfo: [NSObject : AnyObject]) { // PFPush.handlePush(userInfo) // PFAnalytics.trackAppOpenedWithRemoteNotificationPayload(userInfo) //batas
if let msg = userInfo["aps"] as? NSObject {
print(msg)
print("a")
}
if let msg = userInfo["test"] as? NSObject {
print(msg)
}
if let msg = userInfo[""] as? NSObject {
print(msg)
}
这是打印输出:
{
}
a
只能检测“aps”但没有值
但是我的userInfo得到这样的值:
> Printing description of userInfo:
▿ 3 elements
▿ [0] : 2 elements
- .0 : message
- .1 : 1235
▿ [1] : 2 elements
- .0 : aps
- .1 : 0 elements
▿ [2] : 2 elements
- .0 : link
- .1 :
然后我读了这个PFPush handlePush crash: NSCFDictionary length Parse同时支持iOS和Android PushNotification服务,这意味着它不能在通用JSON字符串中使用任何特定于服务的格式。
iOS使用以下格式:
> {
"aps" : {
"alert" : {
"title" : "Game Request",
"body" : "Bob wants to play poker",
"action-loc-key" : "PLAY"
},
"badge" : 5,
},
"acme1" : "bar",
"acme2" : [ "bang", "whiz" ]
}
我是否必须遵循此iOS格式,或者我仍然可以使用自己的JSON类型?
很抱歉,如果在解释此错误时有任何遗漏。
固定
由于我的JSON,我的代码错误。测试密钥没有价值,只有消息,aps和链接。
所以我的代码就像:
> if let msg = userInfo["message"] as? String {
print(msg)
}
是的,它对我有用。