web-dev-qa-db-ja.com

プッシュ通知アラートテキストの最大長は?

IOSプッシュ通知のアラートテキストの最大長は?

ドキュメント通知ペイロードは合計256バイト未満でなければなりません ですが、アラートテキストには特定の文字制限があることを確認します。

136
hpique

警告テキストの実際の制限はどこにも文書化されていません。 documentation says のみが:

IOS 8以降では、通知ペイロードに許可される最大サイズは2キロバイトです。 Apple Push Notificationサービスは、この制限を超える通知を拒否します。 (iOS 8およびOS Xより前では、最大ペイロードサイズは256バイトです。)

これは私がいくつかの実験をするのを見つけることができたものです。

  • アラート:iOS 7より前のアラート表示制限は107文字でした。大きなメッセージは切り捨てられ、表示されたメッセージの最後に「...」が表示されます。 iOS 7では、制限は235文字に増えたようです。 8行を超えると、メッセージも切り捨てられます。
  • バナー:バナーは約62文字または2行で切り捨てられます。
  • 通知センター:通知センターのメッセージは、110文字または4行前後で切り捨てられます。
  • ロック画面:通知センターと同じ。

ここでの注意点は、公式ドキュメントからの非常に良いメモです:

必要に応じて、iOSは各通知配信スタイルに合うようにメッセージを切り捨てます。最良の結果を得るには、メッセージを切り捨てないでください。

232
ascandroli

236バイトである必要があります。私が知る限り、アラートテキストのサイズに制限はありませんが、合計ペイロードサイズのみです。そのため、ペイロードが最小でアラート情報のみを含む場合、次のようになります。

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

これは20文字(20バイト)かかり、アラート文字列内に236バイトを残します。 ASCIIを使用すると、236文字になりますが、UTF8およびUTF16ではこれよりも少なくなります。

26
Anurag

拡張形式の通知の制限は ここに記載 です。

それは明示的に述べています:

ペイロードは256バイトを超えてはならず、ヌルで終了してはなりません。

ascandroliは 上記 は1400文字のメッセージを送信できたと主張しています。新しい通知形式を使用した独自のテストでは、256バイトの制限を1バイトだけ超えたメッセージは拒否されました。ドキュメントがこの点で非常に明示的であることを考えると Appleが今後256に変更しないことを保証します。

アラートテキスト自体については、256の合計ペイロードサイズに収まる場合、iOSによって表示されます。ステータスバーに表示されるメッセージは切り捨てられますが、通知センターを開くと、メッセージ全体が表示されます。改行文字\nもレンダリングします。

15
William Denniss

編集:

最新情報 で回答を更新する

通知ペイロードに許可される最大サイズは、使用するプロバイダーAPIによって異なります。

レガシーバイナリインターフェイスを使用する場合、最大ペイロードサイズは2KB(2048バイト)です。

HTTP/2プロバイダーAPIを使用する場合、最大ペイロードサイズは4KB(4096バイト)です。 Voice over Internet Protocol(VoIP)通知の場合、最大サイズは5KB(5120バイト)です

古い回答:Apple文書によると、iOS 8のペイロードは2キロバイト(2048バイト)およびiOS 7以前の場合は256バイトです。 (古いドキュメントであり、現在壊れているため、リンクを削除しました)

したがって、テキストを送信するだけの場合は、2028(iOS 8+)または236(iOS 7-)の文字を使用できます。

通知ペイロード

各リモート通知にはペイロードが含まれます。ペイロードには、システムがユーザーに通知する方法に関する情報と、提供するカスタムデータが含まれます。 iOS 8以降では、通知ペイロードに許可される最大サイズは2キロバイトです。 Apple Push Notificationサービスは、この制限を超える通知を拒否します。 (iOS 8およびOS Xより前では、最大ペイロードサイズは256バイトです。)

しかし、私はテストしており、実稼働構成でも2キロバイトをiOS 7デバイスに送信できます

11
jcesarmobile

以下にスクリーンショットを示します(バナー、アラート、通知センター)

AlertBannerNotification Center

10
Loozie

通常のリモート通知の場合、最大サイズは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は、モバイルプッシュ通知のいくつかの豊富な新しいユースケースを可能にする新機能を導入しました。インタラクティブプッシュ通知、サードパーティウィジェット、およびより大きな(2 KB)ペイロードです。本日、iOS 8で発表された新しいモバイルプッシュ機能のサポートを発表します。これらの新機能をSNSで実装する方法を示す新しいiOS 8サンプルアプリを公開し、より大きな2KBペイロードのサポートも実装しています。

7
Elenasys

WWDC 713_hd_whats_new_in_ios_notificationsによると。プッシュペイロードの以前のサイズ制限256バイト2キロバイトに増加しましたiOS 8の場合。

ソース: http://asciiwwdc.com/2014/sessions/713?q=notification#1414.

5
klefevre

pdated Apple document (私の回答日を確認)によると:

"... HTTP/2プロバイダーAPIを使用する場合、最大ペイロードサイズは4096バイトです。レガシーバイナリインターフェイスを使用する場合、最大ペイロードサイズは2048バイトです。Apple Push Notificationサービス(APN)は、最大サイズを超えています。」

1
Burak

Apple更新ドキュメント:

各リモート通知にはペイロードが含まれます。ペイロードには、システムがユーザーに通知する方法に関する情報と、提供するカスタムデータが含まれます。通知ペイロードに許可される最大サイズは、使用するプロバイダーAPIによって異なります。 HTTP/2プロバイダーAPIを使用する場合、最大ペイロードサイズは4096バイトですレガシーバイナリインターフェイス、最大ペイロードサイズは2048バイトを使用します。 Appleプッシュ通知サービス(APN)は、最大サイズを超える通知を拒否します。

1
SaRaVaNaN DM

Apple Pushは、さまざまな理由で文字列を拒否します。私はプッシュ配信のさまざまなシナリオをテストしましたが、これは私の作業上の修正でした(Pythonで):

#  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()
1
Philip Fung

私のテストを参照してください こちら

最大33文字の漢字と13バイトのカスタム値を送信できました。

0
firebear