概要
VoIPプッシュ通知は、Appleによって標準のプッシュ通知とは異なる方法で処理されます。これらのプラットフォームの制約により、OneSignalはVoIP通知の送信をサポートしていますが、VoIPトークンの登録は管理しません。 以下を行う必要があります:- Apple PushKitを使用してVoIPトークンを自分で登録する
- VoIP専用のAPNs証明書をアップロードする
- OneSignalのAPIを使用してトークンを登録し、通知を送信する
プラットフォームの違いの概要
| プラットフォーム | VoIPプッシュのサポート | 動作方法 |
|---|---|---|
| iOS | ✅ はい | Apple PushKitとVoIP APNs証明書を使用 |
| Android | ❌ いいえ | 通話スタイルの動作をシミュレートするためにデータのみのプッシュを使用 |
クロスプラットフォームの通話アプリを構築している場合、プラットフォームごとに異なるアプローチを使用することになります。
Android:VoIPスタイルの動作をシミュレート(真のVoIPではない)
AndroidはVoIPプッシュ通知をサポートしていません。Apple PushKitに相当するものはありません。 代わりに、Androidの通話アプリは次を使用してVoIP動作をシミュレートします:- データのみのプッシュ通知
- フォアグラウンドサービス
- カスタム通話スタイルのUI
- データのみの通知を送信する
- アプリ内でそれらを処理して次を行う:
- フォアグラウンドサービスを開始する
- 通話UIアクティビティを起動する
- カスタムの着信通知を表示する
AndroidのセットアップはOneSignal固有のものではありません。OneSignalはプッシュペイロードを配信するだけで、アプリが通話動作を処理します。
iOS:真のVoIPプッシュ通知を送信する
iOSでは、VoIP通知はApple PushKitを使用し、標準のプッシュ通知とは異なる特別な配信ルールがあります。 OneSignalでのiOS VoIPの動作方法: iOS VoIP通知の場合:- アプリがPushKitを使用してVoIPトークンを登録します
- OneSignalにVoIP Services APNs証明書をアップロードします
- APIを使用してOneSignalにVoIPトークンを登録します
- apns_push_type_override: “voip”を使用してVoIPプッシュを送信します
1. PushKitを使用してVoIPトークンを登録する
AppleのPushKitフレームワークを使用してVoIP通知に登録し、VoIPトークンを受け取ります。- アプリにPushKitを実装する
- AppleがローテーションするときにVoIPトークンを保存して更新する
- AppleのVoIPポリシーに厳密に従う
2. VoIPユーザー用の新しいOneSignalアプリを作成する
2つの別個のOneSignalアプリを維持する必要があります:- メインプッシュアプリ:標準のプッシュ通知用
- VoIPアプリ:VoIP専用の通知用
- 同じiOS Bundle IDを使用する
- 同じネイティブiOSアプリに関連付けられている
3. VoIP Services Certificateをアップロードする
VoIP OneSignalアプリで:- VoIP Services Certificate(.p12)をアップロードする
- 標準のAPNs証明書を再利用しない

キーチェーンアクセス内のVoIP証明書

OneSignalダッシュボードにアップロードされたVoIP証明書
4. OneSignalにVoIPトークンを登録する
Create User APIを使用して、VoIP OneSignalアプリにVoIPトークンを登録します。5. VoIP通知を送信する
Create Notification APIを使用し、次のパラメータを含めます:"apns_push_type_override": "voip"- VoIPアプリの
app_id - 登録したVoIPトークンの
subscription_id
6. VoIPセットアップを検証する
次の場合、iOS VoIP統合は機能しています:- VoIPアプリでVoIPトークンがiOSプッシュサブスクリプションとして表示される
- VoIPプッシュが
pushRegistry(_:didReceiveIncomingPushWith:for:completion:)をトリガーする - アプリが終了またはバックグラウンドの場合でもスリープ解除される