iOS的推送通知自定义格式(iOS Push Notification custom format)

2019-08-19 20:16发布

我是新来的所有iOS推送通知域。 我曾尝试使用下面的代码尝试了基本的推送通知和它完美的作品。 我使用的是“使用JdSoft.Apple.Apns.Notifications;” 做到这一点。 下面的代码:

Notification alertNotification = new Notification(testDeviceToken);

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

这给出了如下结构的输出到iPhone:

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

我现在拿到添加自定义标签的要求如下:

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

我发现它很难得到“人”里面的“APS”。 我也知道,你可以用下面的代码添加自定义属性:

alertNotification.Payload.AddCustom( “人”,Newtonsoft.Json.JsonConvert.SerializeObject(STAT));

但上面的代码中不添加withing“APS”标签。 请告诉我如何能够实现?

Answer 1:

你不允许把自定义标签APS标签内。 下面是单证说一下吧:

供应商可以在苹果保留APS命名空间之外指定自定义负载值。 自定义值必须使用JSON结构和原语类型:字典(对象),数组,字符串,数字和布尔。

所以你的情况,你应该这样做:

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

因此,您可以寻找它在主JSON的关键,而不是在“APS”读你自定义的有效载荷:

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

上面会输出:

这是一个测试地址

你可以找到更多有关自定义的有效载荷,在一些例子沿着苹果的文档 。

问候,斯托伊奇



文章来源: iOS Push Notification custom format