iOS Push Notification custom format
Solution 1
You are not allowed to put custom tags inside aps tag. Here's what documentations says about it:
Providers can specify custom payload values outside the Apple-reserved aps namespace. Custom values must use the JSON structured and primitive types: dictionary (object), array, string, number, and Boolean.
So in your case you should do something like:
{
"aps": {
"alert": "Hello World",
"sound": "default"
},
"Person": {
"Address": "this is a test address",
"Name": "First Name",
"Number": "023232323233"
}
}
Therefore you can read your custom payload with looking for it's key in main JSON, rather than in "aps":
NSLog(@"%@",notification['Person']['Address']);
Above will output:
this is a test address
You could find more about custom payloads, along with some examples in Apple docs.
Regards, HrisTo
Solution 2
You can add Title, Subtitle, body and many other keys as
{
"aps": {
"alert": {
"title": "Hey!🙂 Checkout my custom notification",
"subtitle": "Custom notification subtitle",
"body": "Description of custom notification"
},
"sound": "default",
"category": "CustomPush",
"badge": 1,
"mutable-content": 1
},
"Employee": {
"Name": "John Doe",
"Designation": "Manager"
}
}
Where Employee is custom payload where you can set your own data as required
![Pavan Welihinda](https://i.stack.imgur.com/npZhi.jpg?s=256&g=1)
Pavan Welihinda
Updated on September 16, 2020Comments
-
Pavan Welihinda almost 4 years
I'm new to all iOS push notification domain. I have tried a basic push notification using the following code and it works perfectly. I'm using "using JdSoft.Apple.Apns.Notifications;" to accomplish this. Here's the code:
Notification alertNotification = new Notification(testDeviceToken); alertNotification.Payload.Alert.Body = "Hello World"; alertNotification.Payload.Sound = "default"; alertNotification.Payload.Badge = 1;
This gives the output to the iPhone in the following structure:
{ aps = { alert = "Hello World"; badge = 1; sound = default; }; }
I have now got the requirement to add a custom tag as follows:
{ "aps": { "alert": "Hello World", "sound": "default", "Person": { "Address": "this is a test address", "Name": "First Name", "Number": "023232323233" } } }
I find it difficult to get "Person" inside "aps". I also know that you can add a custom attribute using the following code:
alertNotification.Payload.AddCustom("Person", Newtonsoft.Json.JsonConvert.SerializeObject(stat));
But the above code does not add withing "aps" tag. Please tell me how it can be achieved?