概要
サイレント通知を使用すると、可視メッセージを表示したり音を鳴らしたりすることなく、アプリを起動してバックグラウンドタスク(同期やデータの更新など)を実行できます。 iOSでは、これらをバックグラウンド通知と呼び、Androidではデータ通知として知られています。これらはまとめてサイレントプッシュと呼ばれ、通常の可視通知とは異なる動作をします。 このガイドでは、サポートされているプラットフォームでOneSignalを使用してサイレント通知を構成および送信する方法について説明します。制限事項
サイレント通知は通常のプッシュメッセージとは異なる動作をし、複数のプラットフォーム固有の制限があります。- アプリがサイレントプッシュを受信できない場合:
- 配信は保証されません:
- AppleとGoogleの両方がサイレント通知をベストエフォートとして扱います。iOSは低電力モード、バックグラウンドアプリの更新がオフ、またはユーザーがアプリを閉じた場合に配信を遅延またはドロップする可能性があります。AndroidはDozeまたはOEMの省電力ルールの下で配信を制限またはバッチ処理する可能性があります。
- このため、サイレント通知は重要な更新には使用しないでください。
- 購読ユーザーのみ:OneSignal SDKは購読しているサブスクリプションにのみデータ通知を送信します。非購読ユーザーに到達するには、この回避策に従ってください。
- クロスプラットフォームSDKの限定的なサポート:
- サイレント通知は、ネイティブコード(AndroidのJava/Kotlin、iOSのSwift/Obj-C)で処理する必要があります。
- iOSは
application:didReceiveRemoteNotification:fetchCompletionHandler:の実装が必要です。 - Androidは通知サービス拡張機能の実装が必要です。
OneSignalからサイレント通知を送信
OneSignalからサイレント通知を送信するには、次の手順に従います:1
可視コンテンツを省略
メッセージから可視テキストまたはタイトルを削除します。これには次が含まれます:
- API:Create notification APIリクエストの
contents、headings、subtitle。 - Dashboard:Message、Title、Subtitle
2
content_availableを設定
- API:
content_availableをtrueに設定します。 - Dashboard:「Send to Apple iOS」の下のContent availableをチェックします。これはすべてのプラットフォームに適用され、システムにメッセージが送信されていないことを伝えるだけです。
3
通知にデータを追加
- API:
dataパラメータを使用します。 - Dashboard:Additional Dataフィールドを使用します。
プラットフォーム固有の設定
iOSバックグラウンド通知の設定
バックグラウンド通知を処理するには、iOSアプリのXcodeでBackground Modes > Remote Notifications機能を有効にする必要があります。これは通常、モバイルSDKセットアップに従った場合に含まれています。 Appleドキュメント:- Pushing Background Updates to Your App
- Generating a Remote Notification
- 通知を処理するには、
AppDelegateメソッドapplication(_:didReceiveRemoteNotification:fetchCompletionHandler:)を使用します。
ユーザーがアプリを閉じた場合(アプリスイッチャーからスワイプして消した場合)、iOSは通知を配信しません。そのような場合は、可視の
contentsメッセージを含め、UNNotificationServiceExtension.didReceiveでデータを処理します。Androidデータ通知の設定
通知サービス拡張機能を使用してAndroidでデータ通知を処理します。 これにより次が可能になります:- アプリが強制終了されていない限り通知を処理
- 通知の表示または抑制方法をカスタマイズ
VoIP通知の送信
VoIP通知はサポートされていますが、標準のOneSignal SDKの外で追加の構成が必要です。OneSignalはVoIPトークンを自動的に登録しません。 セットアップ手順については、VoIP通知セットアップガイドを参照してください。FAQ
サイレント通知をアンインストールまたは購読解除の検出に使用できますか?
技術的には可能ですが、信頼性がありません。上記の制限事項セクションで説明したように、サイレント通知の配信は保証されていません。 代わりに:- 少なくとも月に1回、すべてのユーザーに可視通知(コンテンツを含む)を送信してください。
- オプションで補足チェックとしてサイレント通知を送信してください。