APNS JSON PAYLOAD - 更多参数

时间:2011-05-10 18:50:16

标签: php apple-push-notifications

我需要为APNS服务的json有效负载添加一些参数。我怎样才能做到这一点? 这是apple的文档:http://developer.apple.com/library/ios/#documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/ApplePushService/ApplePushService.html#//apple_ref/doc/uid/TP40008194-CH100-SW1

当我尝试发送带有关闭和查看按钮的消息时,我需要再添加两个我的移动应用程序所需的参数。 有什么想法吗?

3 个答案:

答案 0 :(得分:25)

不确定你是否得到了答案。但这就是文档提到的内容

  

提供商可以指定自定义有效负载   苹果保留的aps以外的价值观   命名空间。自定义值必须使用   JSON结构化和原始类型:   字典(对象),数组,字符串,   数字和布尔值。

因此,为了向您的有效负载添加自定义值,只需将它们作为键值对添加到您的有效负载中。像这样的东西

{
    "aps":{
        "alert":"Your Message",
        "sound":"push1.wav"
     },
     "custom_key1":"value1",
     "custom_key2":"value2"
}

此处custom_key1custom_key2是您的自定义密钥,value1value2是他们的值。

答案 1 :(得分:1)

如果有人还在想:

$body = (array('aps' => array('alert' => $message,'sound' => $sound_file_wav),   "some_key" => "custom_id"));
$payload = json_encode($body);

答案 2 :(得分:0)

我在PHP中使用以下内容

$title = 'My Test Message';
$sound = 'doorbell.caf';
$msgpayload=json_encode(array('aps' => array('alert' => $title,'sound' => $sound,)));


$response = $sns->publish(array(
    'TopicArn' => $TopicArn,
    'MessageStructure' => 'json',
    'Message' => json_encode(array(
        'default' => $title,
        'APNS_SANDBOX' => $msgpayload
    ))
));