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をご参照ください。
説明:
その後の手順はTUICallKitがすでに完了していますので、オフラインプッシュ(iOS)のその他の手順を参照する必要はありません。

ステップ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システムのスマートフォンに代えてテストを行う。