푸시 알림 경고 텍스트의 최대 길이는 얼마입니까?


답변:


245

경고 텍스트의 실제 한계는 어디에도 문서화되어 있지 않습니다. 문서가 말하는 유일한 것은 :

iOS 8 이상에서 알림 페이로드에 허용되는 최대 크기는 2KB입니다. Apple Push Notification Service는이 제한을 초과하는 알림을 거부합니다. (iOS 8 이전 및 OS X에서 최대 페이로드 크기는 256 바이트입니다.)

이것이 내가 실험을 할 수있는 것입니다.

  • 알림 : iOS 7 이전의 알림 표시 제한은 107 자입니다. 더 큰 메시지가 잘리고 표시된 메시지 끝에 "..."가 표시됩니다. iOS 7에서는 한도가 235 자로 증가한 것으로 보입니다. 8 줄을 넘으면 메시지도 잘립니다.
  • 배너 : 배너는 약 62 자 또는 2 줄로 잘립니다.
  • 알림 센터 : 알림 센터 의 메시지는 약 110 자 또는 4 줄에서 잘립니다.
  • 화면 잠금 : 알림 센터와 동일합니다.

여기서 알 수 있듯이 공식 문서에서 아주 좋은 메모입니다.

필요한 경우 iOS는 각 알림 전달 스타일에 잘 맞도록 메시지를 자릅니다. 최상의 결과를 얻으려면 메시지를 자르면 안됩니다.


8
인앱 UIAlertView에는 표시 제한이 없습니다. 일정 길이 이상의 텍스트는 스크롤보기로 이동합니다. 그러나 SMS 또는 푸시 알림의 경우 107 자로 제한됩니다.
azdev

1
현지화 방법을 사용할 때 더 이상 1 : 1과 일치하지 않기 때문에 표시된 텍스트는 페이로드에 의해 제한되지 않습니다. 페이로드는 짧을 수 있지만 최종 메시지는 훨씬 길 수 있습니다. 문제는 페이로드 최대 길이와 엄격하게 관련되지 않은 메시지를 표시하는 것입니다.
Marcin

1
샌드 박스에 거대한 페이로드를 보낼 수 있고 배달 될 것이지만 프로덕션 서버는 256 바이트로 제한되었으며 1 바이트 이상은 아닙니다.
DoctorDbx

누구나 텍스트 길이를 표시하는 GCM Android 푸시 알림을 말할 수 있습니까?
harikrishnan

1
1. VoIP (Voice over Internet Protocol) 알림의 경우 최대 페이로드 크기는 5KB (5120 바이트)입니다. 2. 다른 모든 원격 알림의 경우 최대 페이로드 크기는 4KB (4096 바이트)입니다.
vikram

26

236 바이트 여야합니다. 내가 아는 한 경고 텍스트의 크기에는 제한이 없지만 총 페이로드 크기 만 있습니다. 따라서 페이로드가 최소이고 경고 정보 만 포함하는지 고려하면 다음과 같아야합니다.

{"aps":{"alert":""}}

20 자 (20 바이트)를 사용하여 경고 문자열에 236 바이트를 남겨 둡니다. ASCII는 236 자이며 UTF8 및 UTF16에서는 더 적을 수 있습니다.


ASCII 인코딩은 JSON 사양을 위반하므로 UTF-8, UTF-16LE, UTF-16BE, UTF-32LE 또는 UTF-32BE가 필요합니다. ietf.org/rfc/rfc4627.txt를 참조하십시오 . 4 페이지
Aaron Brager

14
ASCII는 UTF-8의 하위 집합이므로 유선을 통해 8 비트 ASCII를 전송하는 것이 항상 안전합니다.
Patrick Horn

궁금한 이유 는 236 바이트 여야한다는 것입니다. .. 자르기 문제로 실행 중입니다. 총 문자 길이를 세면 1024자를 초과하지 않으면 자르기 경고 메시지 문자 길이가 509입니다. 응답이 잘릴 수있는 이유는 무엇입니까? 어떠한 제안 !!
Hitendra Joshi

15

향상된 형식 알림의 한계는 여기문서화되어 있습니다 .

다음과 같이 명시 적으로 나타납니다.

페이로드는 256 바이트를 초과하지 않아야하며 널 종료되지 않아야합니다.

ascandroli 청구 가 1400 개 문자 메시지를 보낼 수 있었다. 새로운 알림 형식으로 테스트 한 결과 256 바이트 제한을 초과하는 1 바이트의 메시지 만 거부되었습니다. 이 시점 에서 문서가 매우 명확 하다는 점을 감안할 때 실험적으로 달성 할 수있는 것에 관계없이 256을 사용하는 것이 더 안전하다고 제안합니다. 애플이 향후 256으로 변경하지 않을 것이라는 보장은 없습니다.

경고 텍스트 자체는 256 총 페이로드 크기에 맞출 수 있으면 iOS에 표시됩니다. 상태 표시 줄에 표시되는 메시지를 자르지 만 알림 센터를 열면 전체 메시지가 나타납니다. 개행 문자도 렌더링합니다 \n.


12

편집하다:

최신 정보로 답변 업데이트

알림 페이로드에 허용되는 최대 크기는 사용하는 공급자 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 킬로바이트를 보낼 수 있습니다


친애하는 downvoter, 링크가 끊어져서 downvote 한 경우 모든 정보가 이미 여기에 있으며 링크가 참조 용일뿐입니다. 또한 왜 돈을 쓰지 않았는지 언급하는 것이 좋습니다.
jcesarmobile

10

스크린 샷 (배너, 알림 및 알림 센터)은 다음과 같습니다.

경보배너알림 센터


7

정기적 인 원격 알림의 경우 최대 크기는 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 페이로드에 대한 지원도 구현했습니다.


5

WWDC 713_hd_whats_new_in_ios_notifications에 따르면. 푸시 페이로드에 대한 이전 크기 제한 인 256 바이트 는 이제 iOS 8의 경우 2KB 로 증가했습니다 .

출처 : http://asciiwwdc.com/2014/sessions/713?q=notification#1414.0


@Diziet 죄송합니다. 그 시점에서 공식 메모를 찾을 수 없지만 마지막 WWDC에서 공식적으로 발표되었습니다. 심지어 도시 비행선은 그것을 annonced : urbanairship.com/blog/2014/07/02/...은
klefevre

다음은 애플 링크를 원하는 슬라이드 / 비디오입니다. developer.apple.com/videos/wwdc/2014- "iOS 알림의 새로운 기능"검색
Diziet

@ kl91 괜찮습니다. 주석과 동기화되지 않은 상태에서 소스를 찾았을 때 주석을 삭제했습니다. PDF를 다운로드하면 82 페이지에 있습니다.
Diziet

1
@ kl94, 그래도 앱이 iOS 7 타겟팅을 계속 지원하는 경우 푸시 알림에 iOS 7 기기로 보내는 2kB 크기 제한이 적용 되나요? 또는 문제는 플랫폼에 관계없이 모든 푸시 알림에 대한 새로운 2kB입니까?
Jing

@Jing 모든 플랫폼에 새로운 크기 제한이 적용될 것이라고 낙관적으로 생각할 수 있습니다.
klefevre

1

애플 푸시는 여러 가지 이유로 문자열을 거부합니다. 푸시 전달에 대한 다양한 시나리오를 테스트했으며 이는 파이썬에서 작동하는 수정 사항입니다.

#  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()

감사. 중요한 부분은 120의 추론이라고 생각합니다. 어떻게 그 숫자에 도달 했습니까? 그래도 따옴표와 줄 바꿈 후에 길이 잘림을 수행하는 것이 더 좋을까요? Apple에 전송 된 최종 문자열의 길이를 더 잘 표현하기 때문입니까?
Rup

모든 따옴표를 제거하는 것에 대한 의견을 보내 주셔서 감사합니다 .iOS 11에서는 메시지 소리는 들리지만 아무것도 표시하지 않는 이상한 버그가 있습니다.
Pedro Góes

1

업데이트 된 Apple 문서 에 따르면 (응답 날짜 확인) :

"... HTTP / 2 제공자 API를 사용할 때 최대 페이로드 크기는 4096 바이트입니다. 레거시 이진 인터페이스를 사용하여 최대 페이로드 크기는 2048 바이트입니다. APN (Apple Push Notification Service)은 최대 크기를 초과하는 알림을 거부합니다."


1

Apple 업데이트 문서 :

각 원격 알림에는 페이로드가 포함됩니다. 페이로드에는 시스템이 사용자에게 제공하는 사용자 정의 데이터뿐만 아니라 사용자에게 경고하는 방법에 대한 정보가 포함됩니다. 알림 페이로드에 허용되는 최대 크기는 사용하는 공급자 API에 따라 다릅니다. HTTP / 2 제공자 API를 사용할 때 최대 페이로드 크기는 4096 바이트 입니다. 레거시 이진 인터페이스를 사용하면 최대 페이로드 크기는 2048 바이트입니다. APN (Apple Push Notification Service)은 최대 크기를 초과하는 알림을 거부합니다.


0

여기 내 테스트를 참조 하십시오

최대 33 개의 중국어 문자와 13 바이트의 사용자 지정 값을 보낼 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.