OSNotificationクラスは、OneSignalのSDKにおけるプッシュ通知ペイロードを表します。アプリで通知を処理する際に、通知のタイトル、本文、カスタムデータ、プラットフォーム固有のプロパティにアクセスするために使用します。
プッシュ通知ペイロードは
4096バイトに制限されています。切り捨てを避けるために、ペイロードを3500バイト未満に保ってください。additionalDataフィールドは2048バイトに制限されています。アプリでOSNotificationにアクセスする
すべてのOneSignal SDKは、OSNotificationオブジェクトを返す通知イベントリスナーを提供します。
- Android: 通知ライフサイクルリスナーを使用する
- iOS: 通知ライフサイクルリスナーまたは
UNNotificationServiceExtensionを使用する
Androidフィールド
iOSフィールド
OSNotificationAction(クリックイベント)
ユーザーの通知に対するインタラクションを記述します。
カスタムOneSignalペイロード構造
すべてのOneSignal通知には、ペイロード内に特別な"custom"オブジェクトが含まれています:
このキーは、OneSignal SDKが通知を処理するために必要です。欠落している場合、通知はクリックイベントや分析をトリガーしません。OneSignalも使用しているデバイスに別のサービスからプッシュを送信する場合は、重複処理を防ぐためにこのキーでフィルタリングしてください。詳細はプッシュペイロードの処理を参照してください。
additionalDataをAPNSルートに移動する
iOSアプリの場合、additionalDataフィールドをcustomディクショナリの内部ではなく、APNSペイロードのルートに配置できます。これにより、カスタム通知ハンドラーでのアクセスが簡単になります。
1. APIで有効にする
Update an app APIを使用して、次のように設定します:
dataを使用してプッシュを送信する
dataフィールドがAPNSルートペイロードに表示されます:
customディクショナリを確認せずにpromo_codeに直接アクセスできます。
復元された通知(Android)
Android SDKは、デバイスの再起動またはアプリの再起動後に通知を復元します。プッシュトークンの形式
- iOS Push (APNS): 64文字、16進数のみ(0-9、a-f)。
deviceToken.map {String(format: "%02x", $0)}.joined() - Android Push (FCM): 通常163文字、英数字で、ハイフン、コロン、アンダースコアを含む場合があります。
FAQ
ペイロードの最大サイズは?
プッシュ通知ペイロードの合計は4096バイトに制限されています。additionalDataフィールドは2048バイトに制限されています。切り捨てを避けるために、ペイロードの合計を3500バイト未満に保ってください。
生のペイロードでOneSignal通知を識別するには?
すべてのOneSignal通知には、通知IDを含む"i"キーを持つ"custom"オブジェクトが含まれています。このキーを確認することで、OneSignal通知と他のプロバイダーから送信された通知を区別できます。
APNSルートペイロードでadditionalDataにアクセスできますか?
はい。Update an app API経由でadditional_data_is_root_payloadを有効にすると、additionalDataフィールドをcustomディクショナリの内部ではなくAPNSルートに配置できます。詳細はadditionalDataをAPNSルートに移動するを参照してください。
Android通知カテゴリ
Android 8.0以降のデバイス向けに通知チャンネルを設定します。
モバイルService Extensions
リッチメディア、バッジ、および配信確認トラッキングを追加します。
モバイルSDKリファレンス
OneSignalのモバイルSDKメソッドとリスナーの完全なリファレンス。