2011-05-10 3 views
8

Tôi cần thêm một số đối số vào tải trọng json cho dịch vụ APNS. Tôi có thể làm cái này như thế nào? đây là tài liệu hướng dẫn về táo: http://developer.apple.com/library/ios/#documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/ApplePushService/ApplePushService.html#//apple_ref/doc/uid/TP40008194-CH100-SW1APNS JSON PAYLOAD - nhiều đối số

Khi tôi cố gắng gửi thư có các nút đóng và xem, tôi cần thêm hai đối số nữa mà ứng dụng di động của tôi cần. Bất kỳ ý tưởng nào?

+0

Không, cho đến khi bạn chỉ cho chúng ta mã của bạn. –

Trả lời

21

Bạn không chắc mình có câu trả lời hay không. Nhưng đây là những gì tài liệu đề cập đến

Nhà cung cấp có thể chỉ định trọng số tùy chỉnh giá trị ngoài không gian tên được đặt trước của Apple . Giá trị tùy chỉnh phải sử dụng các loại cấu trúc và nguyên thủy JSON : từ điển (đối tượng), mảng, chuỗi, số và Boolean.

Vì vậy, để thêm giá trị tùy chỉnh vào trọng tải của bạn, chỉ cần thêm chúng làm cặp khóa-giá trị trong tải trọng của bạn. Một cái gì đó như thế này

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

Đây custom_key1custom_key2 là chìa khóa tùy chỉnh của bạn và value1value2 là những giá trị của họ.

+0

Tôi vẫn gặp sự cố tương tự với APNS. Khi tôi nhận được thông báo, im chỉ có nút "đóng", nhưng tôi cần nút "đóng" và "xem". Khi tôi gửi Tải trọng này: { "aps": {"alert": "test Message"}, "acme2": ["bang", "whiz"] } tôi có các nút cần thiết, nhưng, làm thế nào tôi có thể đặt thêm hai đối số như: "argument1": "value1", "argument2": "value2"?. – sebastian

+0

ví dụ tôi có ở trên sử dụng 2 đối số (khóa tùy chỉnh1 và khóa2). Để lấy các khóa bạn phải xử lý phương thức ủy nhiệm ứng dụng. – lostInTransit

0

tôi sử dụng những điều sau đây trong 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 
    )) 
)); 
1

Trong trường hợp ai đó vẫn còn tự hỏi:

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