初期化
機能説明
IM SDKの各機能を使用する前に、初期化を実行する必要があります。
ほとんどの運用シーンでは、Appのライフサイクルにおいて、IM SDKの初期化を1回だけ実行すればよいです。
初期化
SDKを初期化するには、以下を実施してください:
1. SDKAppIDの用意
2. SdkConfigの設定
3. SDKイベントリスナーの設定
4.
Init
の呼出しによるSDKの初期化以下では上記の各実施事項を詳しく説明します。
SDKAppIDの用意
初期化するには、正しいSDKAppIDを持つ必要があります。
SDKAppIDはTencent Cloud IMサービスがお客様のアカウントを区別するための唯一の識別子です。独立したAppごとにSDKAppIDを申請することをお勧めします。異なるSDKAppIDでは、メッセージは隔離されており、お互い通信できません。
IMコンソールですべてのSDKAppIDを確認できます。Appを新規作成ボタンをクリックすれば、新しいSDKAppIDを作成できます。
SdkConfigの設定
IM動作時のログとデータの保存先を設定します。
sdk_config_config_file_path
IMローカルデータの保存先。
ご注意:
Appにはこの保存先への読み取り、書込み権限が必要です。
sdk_config_log_file_path
IMログの保存先。
ご注意:
アプリケーションにはこの保存先への読取り・書込み権限が必要です。
初期化インターフェースの呼出し
サンプルコードは以下の通りです:
public static void Init() {int sdkappid = 0; // IMコンソールからAppのSDKAppIDを取得する。SdkConfig sdkConfig = new SdkConfig();sdkConfig.sdk_config_config_file_path = Application.persistentDataPath + "/TIM-Config";sdkConfig.sdk_config_log_file_path = Application.persistentDataPath + "/TIM-Log";TIMResult res = TencentIMSDK.Init(long.Parse(sdkappid), sdkConfig);}
SDKグローバルイベントリスナーの登録
SDKを初期化した後、
NetworkStatusListenerCallback
、UserSigExpiredCallback
などのコールバックでイベントを出力します。例えば、接続状態、ログイン資格情報期限切れなど。
initSDKを呼出した直後にグローバルイベントリスナーを登録し、該当するコールバックでロジック処理を行うことをお勧めします。関連のコールバックを下表に示します:
イベントコールバック | イベント説明 |
新しいメッセージを受信した時に実行するコールバック | |
メッセージ既読確認を通知した時に実行するコールバック | |
受信したメッセージが取り消された時に実行するコールバック | |
メッセージにおけるエレメント関連のファイルのアップロード進捗に関するコールバック | |
グループシステムメッセージに関するコールバック | |
グループの属性が変更された時に実行するコールバック | |
セッションの未読メッセージ数が変更された時に実行するコールバック | |
ネットワーク接続状態監視に関するコールバック | |
強制退会によるオフラインを通知する時に実行するコールバック | |
資格情報が期限切れになった時に実行するコールバック | |
友達追加に関するコールバック | |
友達削除に関するコールバック | |
友達プロフィールが更新された時に実行するコールバック | |
友達追加申請に関するコールバック | |
友達追加申請が削除された時に実行するコールバック | |
友達追加申請が既読になった時に実行するコールバック | |
ブラックリストが追加された時に実行するコールバック | |
ブラックリストが削除された時に実行するコールバック | |
ログ関連のコールバック | |
メッセージがクラウド側で変更されたことによってメッセージが更新されたことを通知した時に実行するコールバック | |
グループメッセージを既読したグループメンバーのリストを取得した時に実行するコールバック |
ご注意:
UserSigExpiredCallback
コールバックを受信した場合、ログイン用のUserSig資格情報が期限切れになったため、新たに発行されたUserSigを使用して改めてログインしてください。期限切れのUserSigを引き続き使用すれば、IM SDKのログインが無限ループになります。初期化解除
一般的には、ご利用のAppのライフサイクルはIM SDKのライフサイクルと同じで、Appを終了する前に、初期化を解除しなくてもかまいません。
ただし、運用シーンによって、IM SDKの初期化を解除する必要があります。例えば、特定のページに入ってからIM SDKを初期化し、そのページを終了してもう使用しなくなる場合。
サンプルコードは以下の通りです:
// SDKの初期化解除TencentIMSDK.Uninit();
その他
SDK呼出しの実行結果に、resがTIMResult.TIM_SUCC = 0の場合、インターフェースの呼出しに成功しました。
SDKの初期化に成功した直後に、必要なイベントリスナーを追加してください。これはメッセージ漏れを防ぐためです。
よくある質問
1. IM SDKのログイン、メッセージ、グループ、セッション、リレーショナルチェーン、プロフィール、シグナルなどの機能を使用する前に、初期化を実行する必要があります。