programing

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

lastmoon 2023. 6. 11. 11:11
반응형

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

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

설명서따르면 알림 페이로드는 총 256바이트 미만이어야 하지만 경고 텍스트에 대한 특정 문자 제한이 있어야 합니다.

경고 텍스트의 실제 한계는 어디에도 문서화되어 있지 않습니다.설명서에 나와 있는 내용은 다음과 같습니다.

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

이것이 제가 몇 가지 실험을 통해 발견한 것입니다.

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

참고로 공식 문서에서 매우 유용한 메모가 있습니다.

필요한 경우 iOS는 각 알림 배달 유형에 적합하도록 메시지를 잘라냅니다. 최상의 결과를 얻으려면 메시지를 잘라내지 마십시오.

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

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

이는 20자(20바이트)를 차지하며 경고 문자열에 넣을 236바이트를 남깁니다.ASCII의 경우 236자이고 UTF8 및 UTF16의 경우 더 작을 수 있습니다.

향상된 형식 알림의 제한은 여기에 설명되어 있습니다.

다음과 같이 명시되어 있습니다.

페이로드는 256바이트를 초과할 수 없으며 null-termination일 수 없습니다.

ascandroli는 그들이 1400자로 메시지를 보낼 수 있었다고 위에서 주장합니다.새로운 알림 형식을 사용한 자체 테스트 결과 256바이트 제한을 1바이트 초과하는 메시지가 거부되었습니다.이 점에 대해 문서가 매우 명확하기 때문에 애플이 앞으로 256으로 변경하지 않을 것이라는 보장이 없기 때문에 실험적으로 달성할 수 있는 것과 상관없이 256을 사용하는 것이 더 안전하다고 제안합니다.

경고 텍스트 자체는 총 페이로드 크기 256에 맞출 수 있으면 iOS에서 표시됩니다.상태 표시줄에 표시되는 메시지를 잘라내지만 알림 센터를 열면 전체 메시지가 표시됩니다. 줄 인 새줄문도렌더니다합링자▁new다를 렌더링합니다.\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

iOS 8에서 Apple은 대화형 푸시 알림, 타사 위젯 및 더 큰 (2KB) 페이로드와 같은 모바일 푸시 알림의 풍부한 새로운 사용 사례를 가능하게 하는 새로운 기능을 도입했습니다.오늘 iOS 8에서 발표된 새로운 모바일 푸시 기능에 대한 지원을 발표하게 되어 기쁩니다.이러한 새로운 기능을 SNS로 구현할 수 있는 방법을 보여주는 새로운 iOS 8 샘플 앱을 게시하고 있으며, 더 큰 2KB 페이로드에 대한 지원도 구현했습니다.

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

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

Apple 푸시는 다양한 이유로 문자열을 거부합니다.푸시 전달을 위한 다양한 시나리오를 테스트했고, 이것이 제 작업 수정 사항이었습니다(파이썬).

#  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바이트입니다.Apple Push Notification 서비스(APN)는 최대 크기를 초과하는 모든 알림을 거부합니다."

Apple 업데이트 문서:

각 원격 통지에는 페이로드가 포함됩니다.페이로드에는 시스템이 사용자에게 경고하는 방법과 사용자가 제공하는 사용자 지정 데이터에 대한 정보가 포함됩니다.알림 페이로드에 허용되는 최대 크기는 사용하는 공급자 API에 따라 달라집니다.HTTP/2 공급자 API를 사용하는 경우 최대 페이로드 크기는 4096바이트입니다.기존 이진 인터페이스를 사용할 경우 최대 페이로드 크기는 2048바이트입니다.APN(Apple Push Notification) 서비스는 최대 크기를 초과하는 모든 알림을 거부합니다.

여기서 내 테스트 보기

저는 최대 33자의 한자와 13바이트의 사용자 지정 값을 보낼 수 있습니다.

언급URL : https://stackoverflow.com/questions/6307748/what-is-the-maximum-length-of-a-push-notification-alert-text

반응형