APN
オフライン通知機能は、Appがバックエンドで実行中またはオフライン状態の場合でも、オーディオビデオ通話の着信を受信できる機能です。TUICallKitはAppleが提供するシステムレベルのプッシュチャネル(APNs)を使用してメッセージの通知を行います。
ステップ1:オフラインプッシュの設定
1. APNs証明書の申請:具体的にはオフラインプッシュ(iOS)のステップ1をご参照ください。
2. IMコンソール設定:具体的にはオフラインプッシュ(iOS)のステップ2をご参照ください。
3. Appへの毎回のログイン時に、AppleからdeviceTokenを取得します。具体的にはオフラインプッシュ(iOS)のステップ3をご参照ください。
4. IM SDKにログイン後、deviceTokenをTencent Cloudにアップロードします。具体的にはオフラインプッシュ(iOS)のステップ4をご参照ください。
説明:
ステップ2:プロジェクトの設定
アプリケーションプログラムに必要な権限を追加する必要があります。Xcodeプロジェクトでプッシュ通知機能を有効にしてください。
Xcodeプロジェクトを開き、Project > Target > Capabilitiesページで赤枠内の+ボタンをクリックし、Push Notificationsを選択して追加します。追加後の結果は図の黄色枠のようになります。
上記の手順が完了し、プロジェクトを実行すると、
TUICallKit
のオフライン通知機能を体験できるようになります。よくあるご質問
1、プッシュ通知を受信できず、バックエンドでbad devicetokenというエラーが表示されました。
AppleのdeviceTokenは現在のコンパイル環境に関連しています。IMSDKにログイン後にdeviceTokenをTencent Cloudにアップロードした際に使用した証明書IDがtokenと一致しなかった場合、エラーが表示されます。
Release環境を使用してコンパイルした場合、
- application:didRegisterForRemoteNotificationsWithDeviceToken:
のコールバックで返されるのはリリース環境のtokenです。この場合、businessIDには本番環境の証明書IDを設定する必要があります。Debug環境を使用してコンパイルした場合、
- application:didRegisterForRemoteNotificationsWithDeviceToken:
のコールバックで返されるのは開発環境のtokenです。この場合、businessIDには開発環境の証明書IDを設定する必要があります。V2TIMAPNSConfig *confg = [[V2TIMAPNSConfig alloc] init];/* ユーザーは自身でAppleに開発者証明書を登録します。開発者アカウントに証明書(p12ファイル)をダウンロードして生成し、生成したp12ファイルをTencent証明書管理コンソールに渡すと、コンソールは証明書IDを自動生成し、証明書IDを以下のbusiIdパラメータに渡します。*///証明書IDをプッシュしますconfg.businessID = sdkBusiId;confg.token = self.deviceToken;[[V2TIMManager sharedInstance] setAPNS:confg succ:^{} fail:^(int code, NSString *msg) {}];
2、iOS開発環境で、登録してもdeviceTokenが返されないことや、APNsのtokenリクエストに失敗したと表示されることがあります。
この問題の現象はAPNsサービスが不安定なために発生します。次の方法で解決を試みることができます。
1. スマートフォンにSIMカードを挿入し、4Gネットワークを使用してテストを行う。
2. アンインストールして再インストール、Appの再起動、シャットダウンして再起動を行ってからテストを行う。
3. 本番環境のパッケージを作成してテストを行う。
4. 他のiOSシステムのスマートフォンに代えてテストを行う。