я пытаюсь получить толчок 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 сбой: длина NSCFDictionary, что Parse поддерживает iOS и Android PushNotification services одновременно, что означает, что он не может использовать какой-либо специфичный для службы формат в общей строке 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. С тестовым ключом нет значения, только сообщение, апс и ссылка.
Итак, мой код будет выглядеть так:
> if let msg = userInfo["message"] as? String {
print(msg)
}
Да и у меня работает.