オフライン通知機能は、Appがバックエンドで実行中またはオフライン状態の場合でも、オーディオビデオ通話の着信を受信できる機能です。TUICallKitはAppleが提供するシステムレベルのプッシュチャネル(APNs)を使用してメッセージの通知を行います。
ステップ1:オフラインプッシュの設定
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];
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システムのスマートフォンに代えてテストを行う。