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


답변:


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.