iOS 푸시 알림의 경고 텍스트의 최대 길이는 얼마입니까?
문서 있음 상태 알림 페이로드가 총 256 바이트 미만이어야합니다 , 그러나 확실하게 경고 텍스트의 특정 문자 제한이 있어야합니다.
iOS 푸시 알림의 경고 텍스트의 최대 길이는 얼마입니까?
문서 있음 상태 알림 페이로드가 총 256 바이트 미만이어야합니다 , 그러나 확실하게 경고 텍스트의 특정 문자 제한이 있어야합니다.
답변:
경고 텍스트의 실제 한계는 어디에도 문서화되어 있지 않습니다. 문서가 말하는 유일한 것은 :
iOS 8 이상에서 알림 페이로드에 허용되는 최대 크기는 2KB입니다. Apple Push Notification Service는이 제한을 초과하는 알림을 거부합니다. (iOS 8 이전 및 OS X에서 최대 페이로드 크기는 256 바이트입니다.)
이것이 내가 실험을 할 수있는 것입니다.
여기서 알 수 있듯이 공식 문서에서 아주 좋은 메모입니다.
필요한 경우 iOS는 각 알림 전달 스타일에 잘 맞도록 메시지를 자릅니다. 최상의 결과를 얻으려면 메시지를 자르면 안됩니다.
236 바이트 여야합니다. 내가 아는 한 경고 텍스트의 크기에는 제한이 없지만 총 페이로드 크기 만 있습니다. 따라서 페이로드가 최소이고 경고 정보 만 포함하는지 고려하면 다음과 같아야합니다.
{"aps":{"alert":""}}
20 자 (20 바이트)를 사용하여 경고 문자열에 236 바이트를 남겨 둡니다. ASCII는 236 자이며 UTF8 및 UTF16에서는 더 적을 수 있습니다.
향상된 형식 알림의 한계는 여기 에 문서화되어 있습니다 .
다음과 같이 명시 적으로 나타납니다.
페이로드는 256 바이트를 초과하지 않아야하며 널 종료되지 않아야합니다.
ascandroli 청구 위 가 1400 개 문자 메시지를 보낼 수 있었다. 새로운 알림 형식으로 테스트 한 결과 256 바이트 제한을 초과하는 1 바이트의 메시지 만 거부되었습니다. 이 시점 에서 문서가 매우 명확 하다는 점을 감안할 때 실험적으로 달성 할 수있는 것에 관계없이 256을 사용하는 것이 더 안전하다고 제안합니다. 애플이 향후 256으로 변경하지 않을 것이라는 보장은 없습니다.
경고 텍스트 자체는 256 총 페이로드 크기에 맞출 수 있으면 iOS에 표시됩니다. 상태 표시 줄에 표시되는 메시지를 자르지 만 알림 센터를 열면 전체 메시지가 나타납니다. 개행 문자도 렌더링합니다 \n
.
편집하다:
최신 정보로 답변 업데이트
알림 페이로드에 허용되는 최대 크기는 사용하는 공급자 API에 따라 다릅니다.
레거시 이진 인터페이스를 사용하는 경우 최대 페이로드 크기는 2KB (2048 바이트)입니다.
HTTP / 2 제공자 API를 사용할 때 최대 페이로드 크기는 4KB (4096 바이트)입니다. VoIP (Voice over Internet Protocol) 알림의 경우 최대 크기는 5KB (5120 바이트)입니다.
오래된 답변 : 애플 문서에 따르면 iOS 8의 페이로드는 2 킬로바이트 (2048 바이트)이고 iOS 7 이전의 256 바이트입니다. (이것은 오래된 문서 였으므로 링크가 제거되었으며 지금은 깨졌습니다)
따라서 텍스트 만 보내면 2028 (iOS 8+) 또는 236 (iOS 7-)자를 사용할 수 있습니다.
알림 페이로드
각 원격 알림에는 페이로드가 포함됩니다. 페이로드에는 시스템이 사용자에게 제공하는 사용자 정의 데이터뿐만 아니라 사용자에게 경고하는 방법에 대한 정보가 포함됩니다. iOS 8 이상에서 알림 페이로드에 허용되는 최대 크기는 2KB입니다. Apple Push Notification 서비스는이 제한을 초과하는 알림을 거부합니다. (iOS 8 이전 및 OS X에서 최대 페이로드 크기는 256 바이트입니다.)
그러나 테스트를 마쳤으며 프로덕션 구성에서도 iOS 7 기기에 2 킬로바이트를 보낼 수 있습니다
정기적 인 원격 알림의 경우 최대 크기는 4KB (4096 바이트)입니다. https://developer.apple.com/library/content/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/CreatingtheNotificationPayload.html
### iOS 크기 제한은 256 바이트이지만 iOS 8의 도입으로 2kb로 변경되었습니다!
https://forums.aws.amazon.com/ann.jspa?annID=2626
Apple은 iOS 8에서 대화 형 푸시 알림, 타사 위젯 및 더 큰 (2KB) 페이로드와 같은 모바일 푸시 알림에 대한 풍부한 새로운 사용 사례를 지원하는 새로운 기능을 도입했습니다. 오늘 iOS 8과 함께 발표 된 새로운 모바일 푸시 기능에 대한 지원을 발표하게되어 기쁩니다. SNS로 이러한 새로운 기능을 구현하는 방법을 보여주는 새로운 iOS 8 샘플 앱을 게시하고 더 큰 2KB 페이로드에 대한 지원도 구현했습니다.
WWDC 713_hd_whats_new_in_ios_notifications에 따르면. 푸시 페이로드에 대한 이전 크기 제한 인 256 바이트 는 이제 iOS 8의 경우 2KB 로 증가했습니다 .
출처 : http://asciiwwdc.com/2014/sessions/713?q=notification#1414.0
애플 푸시는 여러 가지 이유로 문자열을 거부합니다. 푸시 전달에 대한 다양한 시나리오를 테스트했으며 이는 파이썬에서 작동하는 수정 사항입니다.
# Apple rejects push payloads > 256 bytes (truncate msg to < 120 bytes to be safe)
if len(push_str) > 120:
push_str = push_str[0:120-3] + '...'
# Apple push rejects all quotes, remove them
import re
push_str = re.sub("[\"']", '', push_str)
# Apple push needs to newlines escaped
import MySQLdb
push_str = MySQLdb.escape_string(push_str)
# send it
import APNSWrapper
wrapper = APNSWrapper.APNSNotificationWrapper(certificate=...)
message = APNSWrapper.APNSNotification()
message.token(...)
message.badge(1)
message.alert(push_str)
message.sound("default")
wrapper.append(message)
wrapper.notify()
업데이트 된 Apple 문서 에 따르면 (응답 날짜 확인) :
"... HTTP / 2 제공자 API를 사용할 때 최대 페이로드 크기는 4096 바이트입니다. 레거시 이진 인터페이스를 사용하여 최대 페이로드 크기는 2048 바이트입니다. APN (Apple Push Notification Service)은 최대 크기를 초과하는 알림을 거부합니다."
Apple 업데이트 문서 :
각 원격 알림에는 페이로드가 포함됩니다. 페이로드에는 시스템이 사용자에게 제공하는 사용자 정의 데이터뿐만 아니라 사용자에게 경고하는 방법에 대한 정보가 포함됩니다. 알림 페이로드에 허용되는 최대 크기는 사용하는 공급자 API에 따라 다릅니다. HTTP / 2 제공자 API를 사용할 때 최대 페이로드 크기는 4096 바이트 입니다. 레거시 이진 인터페이스를 사용하면 최대 페이로드 크기는 2048 바이트입니다. APN (Apple Push Notification Service)은 최대 크기를 초과하는 알림을 거부합니다.