2013-04-05 12 views
17

Jestem nowym użytkownikiem wszystkich domen powiadomień push systemu iOS. Próbowałem podstawowe powiadomienie push przy użyciu następującego kodu i działa idealnie. Używam "using JdSoft.Apple.Apns.Notifications;" aby to osiągnąć. Oto kod:Niestandardowy format powiadomień Push systemu iOS

Notification alertNotification = new Notification(testDeviceToken); 

alertNotification.Payload.Alert.Body = "Hello World";   
alertNotification.Payload.Sound = "default"; 
alertNotification.Payload.Badge = 1; 

Daje wyjście do iPhone w następującej strukturze:

{ 
    aps =  { 
     alert = "Hello World"; 
     badge = 1; 
     sound = default; 
    }; 
} 

Mam teraz dostał wymóg, aby dodać znacznik niestandardowy sposób następujący:

{ 
      "aps":   { 
        "alert": "Hello World", 
        "sound": "default", 
    "Person":     { 
           "Address": "this is a test address", 
           "Name": "First Name", 
           "Number": "023232323233" 
          
    }   
    } 
} 

Trudno jest uzyskać "Person" wewnątrz "aps". Wiem również, że można dodać niestandardowy atrybut przy użyciu następującego kodu:

alertNotification.Payload.AddCustom ("Person", Newtonsoft.Json.JsonConvert.SerializeObject (stat));

Powyższy kod nie dodaje jednak znacznika "aps". Proszę powiedz mi, jak można to osiągnąć?

+0

podmioty niestandardowe nie powinny być w elemencie APS. [Przykładowy ładunek jabłek] (http://developer.apple.com/library/iOS/#documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/ApplePushService/ApplePushService.html#//apple_ref/doc/uid/TP40008194-CH100-SW15) – rckoenes

Odpowiedz

32

Nie można umieszczać niestandardowych znaczników wewnątrz znacznika aps. Oto, co o tym mówią dokumenty:

Dostawcy mogą określać niestandardowe wartości ładunku poza zarezerwowaną dla Apple nazwą przestrzeni nazw aps. Wartości niestandardowe muszą używać typów strukturalnych i pierwotnych JSON: słownik (obiekt), tablica, łańcuch, liczba i wartość logiczna.

Więc w twoim przypadku należy zrobić coś takiego:

{ 
    "aps": { 
     "alert": "Hello World", 
     "sound": "default" 
    }, 
    "Person": { 
     "Address": "this is a test address", 
     "Name": "First Name", 
     "Number": "023232323233" 
    } 
} 

Dlatego można przeczytać swój własny ładunek z patrząc na to jest kluczem głównym JSON, zamiast w „APS”:

NSLog(@"%@",notification['Person']['Address']); 

Przede wyjście wola:

jest to adres Test

Więcej informacji na temat niestandardowych ładunków można znaleźć na stronie Apple docs.

Pozdrawiam, Hristo

Powiązane problemy