2011-11-15 28 views
47

Tôi gửi thông báo đẩy từ ứng dụng công việc php tới iphone. Tôi đang gửi thông báo đẩy về các công việc mới. Điều này có thể xảy ra khi người dùng nhấp vào chế độ xem thông báo đẩy bật lên, sau đó người dùng chuyển hướng đến công việc cụ thể trong thiết bị.Thông báo Đẩy của Apple với Gửi Dữ liệu Tùy chỉnh

Tôi muốn biết tôi có thể gửi bất kỳ dữ liệu tùy chỉnh nào bằng thông báo đẩy như jobId, cái gì khác .... để Iphone kết thúc Có thể truy xuất và hiển thị công việc cụ thể không?

Cảm ơn.

+3

rckones oh..sorry .. Tôi không biết làm thế nào để accpt như câu trả lời .. lỗi của tôi ... đã sắp xếp nó ra ... :) – vikas

+5

Chúng tôi là tất cả ở đây để tìm hiểu. – rckoenes

Trả lời

114

Bất kể ngôn ngữ và thư viện bạn sử dụng, tải trọng thông báo push là một tải trọng JSON:

{ 
    "aps": { 
     "badge": 10, 
     "alert": "Hello world!", 
     "sound": "cat.caf" 
    } 
} 

Các aps mã thông báo là dữ liệu APN của Apple. Bạn có thể thêm dữ liệu tùy chỉnh để tải trọng của bạn cũng như:

{ 
    "aps": { 
     "badge": 10, 
     "alert": "Hello world!", 
     "sound": "cat.caf" 
    }, 
    "job_id": 1 
} 

Khi bạn nhận được thông báo trong ứng dụng, kiểm tra các param của bạn trong từ điển thông báo:

- (void)handleBackgroundNotification:(NSDictionary *)notification 
{ 
    NSDictionary *aps = (NSDictionary *)[notification objectForKey:@"aps"]; 
    NSMutableString *alert = [NSMutableString stringWithString:@""]; 
    if ([aps objectForKey:@"alert"]) 
    { 
     [alert appendString:(NSString *)[aps objectForKey:@"alert"]]; 
    } 
    if ([notification objectForKey:@"job_id"]) 
    { 
     // do something with job id 
     int jobID = [[notification objectForKey:@"job_id"] intValue]; 
    } 
} 

Hãy ghi nhớ rằng tổng kích thước của tải trọng là 256 byte và bao gồm tất nhiên, thông số tùy chỉnh của bạn. Vì vậy, bạn có thể phải (có nguy cơ giảm khả năng đọc) gọi param tùy chỉnh của bạn "ji" thay vì "job_id" để squeeze byte.

Tất cả điều này được ghi lại trong Local and Push Notification Programming Guide trong tài liệu iOS. Chắc chắn sẽ khuyên bạn nên đọc vì nó phức tạp hơn ban đầu nó âm thanh (ít nhất, đó là những gì tôi nghĩ).

+0

Làm cách nào để thêm dữ liệu tùy chỉnh vào tải trọng? – Haring10

+0

@JoshHarington "job_id": 1 là dữ liệu tùy chỉnh trong tải trọng –

+12

Từ iOS 8, kích thước tải trọng đã được tăng lên 2KB từ 256 byte :) –

8

Có bạn có thể gửi dữ liệu tùy chỉnh, kiểm tra apns-php library cho tất cả các thông báo đẩy nhu cầu:

+0

Hey: Bạn vui lòng giải thích định dạng Push in Php hay không. –

+0

@ Asim Tôi không có nhiều thông tin về định dạng, nhưng bạn có thể sử dụng thư viện này tôi đã đề cập, cho PHP. Bạn có thể đảo ngược kỹ sư để xem định dạng. – Arfeen

0

Chúng ta có thể thêm nhiều hơn một dữ liệu tùy chỉnh, nhưng, nếu tôi sử dụng sub_action như tên gọi, iPhone của tôi không thể nhận push msg

Java:

PayLoad payLoad = new PayLoad(); 
payLoad.addCustomDictionary("action", action_type); 
payLoad.addCustomDictionary("subaction", sub_action_type); 
Các vấn đề liên quan