iOS Push Notification custom format

前端 未结 3 858
無奈伤痛
無奈伤痛 2021-01-01 11:21

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.No

相关标签:
3条回答
  • 2021-01-01 11:33

    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

    0 讨论(0)
  • 2021-01-01 11:52

    I am using push sharp library.

     public static JObject CreatePayload(APNSNotification apnsNotification, object content, int Ntype)
            {
                var payload = new Dictionary<string, object>();
                var aps = new Dictionary<string, object>();
    
    
                if ((int)NotificationType.CONFERENCE == Ntype)
                {
                    var confNotification = new ConferenceNotification();
                    confNotification = (ConferenceNotification)content;
    
                    aps.Add("alert", confNotification.title);
                    aps.Add("subtitle", confNotification.body);
                    aps.Add("badge", confNotification.badgeCount);
    
                    payload.Add("aps", aps);
    
    
                    payload.Add("confId", confNotification.confId);
                    payload.Add("pageFormat", confNotification.pageFormat);
                    payload.Add("pageTitle", confNotification.pageTitle);
                    payload.Add("webviewURL", confNotification.webview_URL);
                    payload.Add("notificationBlastID", confNotification.notificationBlastID);
                    payload.Add("dataValue", confNotification.dataValue);
                    payload.Add("pushtype", "Events");
                }
                else if ((int)NotificationType.NEWS == Ntype)
                {
                    var newsNotification = new NewsNotification();
                    newsNotification = (NewsNotification)content;
    
                    aps.Add("alert", newsNotification.title);
                    aps.Add("subtitle", newsNotification.subtitle);
                    aps.Add("badge", newsNotification.badgeCount);
    
                    payload.Add("aps", aps);
    
                    payload.Add("articleId", newsNotification.articleId);
                    payload.Add("msgcnt", newsNotification.msgcnt);
                    payload.Add("type", newsNotification.type);
                    payload.Add("pushtype", "News");
                }
    
                return JObject.Parse(Newtonsoft.Json.JsonConvert.SerializeObject(payload));
            }
    
    0 讨论(0)
  • 2021-01-01 11:57

    You can add Title, Subtitle, body and many other keys as

    {
      "aps": {
        "alert": {
          "title": "Hey!                                                                    
    0 讨论(0)
提交回复
热议问题