2012-02-07 42 views
30

Tôi là người mới sử dụng các thông báo đẩy của iOS. Tôi đã đọc về họ và dường như không thể tìm thấy thông tin này ở bất cứ đâu. Tôi đã đọc rằng giới hạn kích thước trên một thông báo đẩy là 256 byte. Giới hạn kích thước này có bao gồm những thứ như mã thông báo thiết bị phải được gửi và thông tin chi phí khác về thông báo không. Nếu vậy kích thước thực tế tôi có sẵn cho nội dung của mình là bao nhiêu.Giới hạn ký tự thông báo đẩy của iPhone

Ngoài ra, họ đang sử dụng định dạng nào để diễn giải văn bản mà tôi gửi? Là chuyển đổi 1 ký tự = 1 byte hoặc là nó nhiều hơn thế. Thực sự tôi muốn biết tôi có thể gửi bao nhiêu ký tự trong một thông báo đẩy.

Cảm ơn bạn đã giúp đỡ trong việc hiểu các giới hạn của tải trọng thông báo đẩy.

Trả lời

49

Mỗi thông báo đẩy mang theo một tải trọng. Tải trọng chỉ định cách người dùng được cảnh báo với dữ liệu đang chờ để được tải xuống vào ứng dụng khách. Kích thước tối đa được phép cho một tải trọng thông báo là 256 byte; Dịch vụ thông báo đẩy của Apple từ chối mọi thông báo vượt quá giới hạn này.

Đối với mỗi thông báo, nhà cung cấp phải soạn đối tượng từ điển JSON tuân thủ nghiêm ngặt RFC 4627. Từ điển này phải chứa một từ điển khác được xác định bằng khóa aps. Từ điển aps chứa một hoặc nhiều thuộc tính xác định các hành động sau:

  • Một thông điệp cảnh báo để hiển thị cho người dùng
  • Một số đối với huy hiệu biểu tượng ứng dụng với
  • Một âm thanh để chơi

- Local and Push Notifications Programming Guide

Vì vậy, trả lời câu hỏi của bạn,

Giới hạn kích thước này bao gồm những thứ như mã thông báo thiết bị có để gửi và thông tin chi phí khác về thông báo.

Có, giới hạn kích thước này bao gồm mã thông báo thiết bị và thông tin chi phí khác.

Biến đổi 1 ký tự = 1 byte hay nhiều hơn thế.

Điều này đúng nếu bạn chỉ sử dụng chữ cái Latinh trong thông báo của mình.

+0

Được rồi vì điều đó bao gồm chi phí bạn có biết mình sẽ còn bao nhiêu dung lượng sau khi tính phí trên không? (Tổng không gian - Overhead =? # Của các ký tự còn lại) Cảm ơn. – jcmitch

+13

xem xét tải trọng là tối thiểu và chỉ chứa thông tin cảnh báo, bạn có khoảng 236 ký tự cho văn bản của bạn. Nhưng lưu ý rằng giới hạn hiển thị của 'UIAlertView' là 107 ký tự. Sau đó tin nhắn của bạn bị cắt ngắn và bạn sẽ nhận được một "..." ở cuối của tin nhắn được hiển thị. –

+0

Ok cảm ơn. UIAlertView không phải là một vấn đề. Chỉ cần đính kèm dữ liệu để sử dụng sau này trong tải trọng. – jcmitch

5

Trên đây là tất cả khá rõ ràng, bởi vì 'bao gồm' có thể có nghĩa là "nó đã được bao gồm" hoặc "bạn phải bao gồm nó". Để được rất rõ ràng, ID thiết bị là 'siêu dữ liệu', không phải là một phần của tải trọng, và không đi ra khỏi ngân sách 256 ký tự của bạn. Tuy nhiên, APS overhead khác (từ điển tải trọng tiêu chuẩn) là.

Nguồn: tài liệu ở trên cùng với thử nghiệm để xác minh.

3

Trong thử nghiệm APNS của tôi trong môi trường sản xuất, tối đa 33 ký tự Trung Quốc và 2 thuộc tính tùy chỉnh 13 byte có thể được gửi thành công.

{ 

    "aps": { 
     "alert": "一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三", 
     "badge": 12, 
    } 
    "t": 123, 
    "v": "1234567890" 
} 

Chiều dài tải trọng trên là 158 byte nếu được lưu dưới dạng tệp, không tính các ký tự khoảng trắng. Mỗi ký tự Trung Quốc được tính là 3 byte (tôi xác nhận rằng bằng cách xóa tất cả chúng để xem thay đổi kích thước).

Như tài liệu chính thức được đề cập, giới hạn 256 byte không bao gồm mã thông báo thiết bị, nhưng tôi tin rằng có các ký tự khác APNS được tính trong, chẳng hạn như 'âm thanh' và 'nội dung khả dụng' ngay cả khi bạn không sử dụng một cách rõ ràng.

Vì vậy, hãy cẩn thận để không 'quá dài', đặc biệt là khi sử dụng tải trọng tùy chỉnh. Lưu ý rằng môi trường phát triển APNS không giới hạn độ dài tải trọng. Kiểm tra của bạn vượt qua trong khi sử dụng môi trường phát triển, nhưng có thể thất bại trong sản phẩm. Đừng coi nó là chắc chắn.

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