Watch App通知的有效负载

时间:2015-05-23 16:58:59

标签: ios apple-push-notifications watchkit

在Xcode中创建新的Apple Watch应用程序时,会创建以下APNS有效内容示例:

{
    "aps": {
        "alert": {
            "body": "Test message",
            "title": "Optional title"
        },
        "category": "myCategory"
    },

    "WatchKit Simulator Actions": [
        {
            "title": "First Button",
            "identifier": "firstButtonAction"
        }
    ],

    "customKey": "Use this file to define a testing payload for your notifications. The aps dictionary specifies the category, alert text and title. The WatchKit Simulator Actions array can provide info for one or more action buttons in addition to the standard Dismiss button. Any other top level keys are custom payload. If you have multiple such JSON files in your project, you'll be able to select them when choosing to debug the notification interface of your Watch App." }

我对警报字典中使用正文和标题感到困惑。以下有效负载通常用于iOS应用程序:

{
    "aps": {
        "alert": "Test message",
        "title": "Opt title",
        "category": "default"
    },
    "WatchKit Simulator Actions": [
        {
            "title": "First Button",
            "identifier": "firstButtonAction"
        }
    ],

    "customKey": "Use this file to define a testing payload for your notifications. The aps dictionary specifies the category, alert text and title. The WatchKit Simulator Actions array can provide info for one or more action buttons in addition to the standard Dismiss button. Any other top level keys are custom payload. If you have multiple such JSON files in your project, you'll be able to select them when choosing to debug the notification interface of your Watch App."
}

哪种方法正确?虽然以这种方式创建了默认有效负载文件,但Apple documentation使用后一种变体提供了屏幕截图。

3 个答案:

答案 0 :(得分:1)

Local and Remote Notification Programming Guide(表3-1)中,alert键的值类型可以是字符串或字典,正如Dhawal所说,这两种格式都是正确的。< / p>

如果alert是字典,则可以包含titlebodytitle-loc-key等(表3-2)。 title密钥的用途是什么?此密钥在iOS 8.2中添加,其中包含WatchKit,而WatchKit具有Short-Look Notification界面,没有足够的空间进行完全通知,因此Apple Watch使用title来描述通知的目的并在Short中显示 - 查看通知。

在这张照片中,&#34;格雷的生日&#34;是title中的alert。由于您无法在模拟器中看到Short-Look Notification,因此您应该在REAL Apple Watch中测试title密钥的结果。

答案 1 :(得分:0)

根据 Apple 文档,您可以在aps词典中找到以下键:alertbadge,{{1} }和sound。以下是content-available字典中可以包含的键:title,body,title-loc-args等。您可以在此处查看“推送通知编程指南”以获取更多信息: Push Notification Programming Guide

同样检查 WatchKit扩展程序Apple Watch Programming Guide

此外,您描述的第二种方式应该是正确的方法。我只是创建了一个 Watch App ,它包含了示例有效负载。并且alert放在category之外的aps内,在这种情况下应该是不正确的。希望这可以帮助。这意味着alert只能包含这四个默认属性。因此,aps应该包含category

答案 2 :(得分:0)

Apple Documentation for Push Notification Payload提到了一个注释,

  

注意:如果您希望设备按原样显示消息文本   具有“关闭”和“查看”按钮的警报,然后指定字符串   作为警报的直接价值。不要将字典指定为值   如果字典只有body属性,则为alert。

因此,如上所述,两种格式都是正确的,但是当您在Alert中只需要body属性时,我们应该使用第二种格式(直接使用文本值而不是字典进行警报)。如果您需要使用Alert的其他子属性,如body,title,...那么您应该使用第一种格式(使用字典作为值的警报)。