AWS Pinpoint:设置 APNS "mutable-content":1

AWS Pinpoint: Set APNS "mutable-content": 1

AWS Pointpoint APNS 默认设置 "mutable-content": 0.

我正在使用 Node.js。

以下工作正常,但 mutable-content 始终是 0"mutable-content": 0:

var messageRequest = {
'Addresses': {
https://forums.aws.amazon.com/: {
'ChannelType': channelType
}
},
'MessageConfiguration': {
'APNSMessage': {
'Action': action,
'Body': message,
'Priority': priority,
'SilentPush': silent,
'Title': title,
'TimeToLive': ttl,
'Url': url,
}
}

下面是 payload 使用上述设置发送 APNS 时我得到的

["aps": {
alert = {
body = "TEST";
title = "Test message sent from Amazon Pinpoint.";
};
"content-available" = 1;
"mutable-content" = 0;
}, "data": {
pinpoint = {
deeplink = "https://www.example.com";
};
}]

如何通过 AWS Pinpoint 为 APNS 设置 "mutable-content": 1

没有文档,但经过反复试验后这对我有用:

var payload = {
    "aps": {
        "alert": {
            "title": "Bold text in the notification",
            "body": "Second line in the notification"
        },
        "sound": "default",
        "mutable-content": 1
    }
};

var messageRequest = {
    Addresses: {
        [token]: {
            ChannelType: "APNS",
        },
    },
    MessageConfiguration: {
        APNSMessage: {
            RawContent: JSON.stringify(payload),
        },
    },
};

只需将他们的模板替换为 RawContent,然后像往常一样创建负载。可以参考有关如何创建原始负载的苹果文档。您还可以使用此方法调整内容可用密钥。这是 link 如何使用 json:

创建有效载荷

https://developer.apple.com/documentation/usernotifications/setting_up_a_remote_notification_server/generating_a_remote_notification

我知道这有点老了,但只是 运行 进入这个问题并想分享我的解决方案。

我发现将“MediaUrl”参数设置为非空字符串会导致 pinpoint 发送“mutable-content”:1

我在任何 pinpoint 文档中都没有看到这一点。