2013-04-05 37 views
17

Tôi là người mới đối với tất cả miền thông báo đẩy iOS. Tôi đã thử một thông báo đẩy cơ bản bằng cách sử dụng mã sau và nó hoạt động hoàn hảo. Tôi đang sử dụng "bằng cách sử dụng JdSoft.Apple.Apns.Notifications;" để hoàn thành việc này. Dưới đây là các mã:Định dạng tùy chỉnh Thông báo đẩy iOS

Notification alertNotification = new Notification(testDeviceToken); 

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

này cung cấp cho các đầu ra cho iPhone trong cấu trúc sau:

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

bây giờ tôi đã có yêu cầu thêm một thẻ tùy chỉnh như sau:

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

Tôi thấy khó có được "Người" bên trong "aps". Tôi cũng biết rằng bạn có thể thêm thuộc tính tùy chỉnh bằng cách sử dụng mã sau:

alertNotification.Payload.AddCustom ("Person", Newtonsoft.Json.JsonConvert.SerializeObject (stat));

Nhưng mã ở trên không thêm bằng thẻ "aps". Hãy cho tôi biết làm thế nào nó có thể đạt được?

+0

Đối tượng tùy chỉnh không được nằm trong phần tử APS. [Tải trọng ví dụ về quả táo] (http://developer.apple.com/library/iOS/#documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/ApplePushService/ApplePushService.html#//apple_ref/doc/uid/TP40008194-CH100-SW15) – rckoenes

Trả lời

32

Bạn không được phép đặt thẻ tùy chỉnh bên trong aps thẻ. Dưới đây là những tài liệu nói về điều này:

Nhà cung cấp có thể chỉ định giá trị tải trọng tùy chỉnh bên ngoài không gian tên aps do Apple đặt trước. Giá trị tùy chỉnh phải sử dụng các loại có 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, trong trường hợp của bạn, bạn nên làm một cái gì đó như:

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

Vì vậy, bạn có thể đọc tải trọng tùy chỉnh của bạn với tìm kiếm nó là chìa khóa trong JSON chính, chứ không phải ở "aps":

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

trên sẽ đầu ra:

đây là một địa chỉ kiểm tra

Bạn có thể tìm hiểu thêm về tải trọng tùy chỉnh, cùng với một số ví dụ trong Apple docs.

Kính trọng, HrisTo

Các vấn đề liên quan