2013-04-05 42 views
17

Sono nuovo a tutti i domini di notifica push di iOS. Ho provato una notifica push di base usando il seguente codice e funziona perfettamente. Sto usando "usando JdSoft.Apple.Apns.Notifications;" per realizzare questo. Ecco il codice:Formato personalizzato notifica push iOS

Notification alertNotification = new Notification(testDeviceToken); 

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

Questo dà l'uscita per l'iPhone nella seguente struttura:

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

ora ho avuto la necessità di aggiungere un tag personalizzato come segue:

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

Trovo difficile ottenere "Persona" all'interno di "aps". So anche che è possibile aggiungere un attributo personalizzato utilizzando il seguente codice:

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

Ma il codice precedente non viene aggiunto con il tag "aps". Per favore dimmi come può essere raggiunto?

+0

entità personalizzate non dovrebbero essere nell'elemento APS. [Carico di esempio di mele] (http://developer.apple.com/library/iOS/#documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/ApplePushService/ApplePushService.html#//apple_ref/doc/uid/TP40008194-CH100-SW15) – rckoenes

risposta

32

Non è consentito inserire tag personalizzati all'interno del tag aps. Ecco cosa ne dice la documentazione:

I provider possono specificare valori di carico utile personalizzati al di fuori dello spazio dei nomi aps riservato da Apple. I valori personalizzati devono utilizzare i tipi strutturati e primitivi JSON: dizionario (oggetto), matrice, stringa, numero e booleano.

Quindi nel tuo caso si dovrebbe fare qualcosa di simile:

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

Pertanto, è possibile leggere il tuo carico utile personalizzato con ricerca di esso è fondamentale nel principale JSON, piuttosto che in "APS":

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

uscita volontà Sopra:

si tratta di un indirizzo di prova

È possibile trovare ulteriori informazioni sui payload personalizzati, insieme ad alcuni esempi in Apple docs.

saluti, Hristo