初期化

機能説明

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の設定

SDKを初期化する前に、SdkConfigオブジェクトを初期化する必要があります。このオブジェクトはローカルSDKキャッシュとログの保存先を設定することに使用されます。
IM動作時のログとデータの保存先を設定します。

sdk_config_config_file_path

IMローカルデータの保存先。
ご注意:
Appにはこの保存先への読み取り、書込み権限が必要です。

sdk_config_log_file_path

IMログの保存先。
ご注意:
アプリケーションにはこの保存先への読取り・書込み権限が必要です。

初期化インターフェースの呼出し

上記を実施した後、Init(詳細はこちら)を使用してSDKを初期化します。
サンプルコードは以下の通りです:
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を初期化した後、NetworkStatusListenerCallbackUserSigExpiredCallbackなどのコールバックでイベントを出力します。例えば、接続状態、ログイン資格情報期限切れなど。 initSDKを呼出した直後にグローバルイベントリスナーを登録し、該当するコールバックでロジック処理を行うことをお勧めします。
関連のコールバックを下表に示します:
イベントコールバック
イベント説明
新しいメッセージを受信した時に実行するコールバック
メッセージ既読確認を通知した時に実行するコールバック
受信したメッセージが取り消された時に実行するコールバック
メッセージにおけるエレメント関連のファイルのアップロード進捗に関するコールバック
グループシステムメッセージに関するコールバック
グループの属性が変更された時に実行するコールバック
セッションの未読メッセージ数が変更された時に実行するコールバック
ネットワーク接続状態監視に関するコールバック
強制退会によるオフラインを通知する時に実行するコールバック
資格情報が期限切れになった時に実行するコールバック
友達追加に関するコールバック
友達削除に関するコールバック
友達プロフィールが更新された時に実行するコールバック
友達追加申請に関するコールバック
友達追加申請が削除された時に実行するコールバック
友達追加申請が既読になった時に実行するコールバック
ブラックリストが追加された時に実行するコールバック
ブラックリストが削除された時に実行するコールバック
ログ関連のコールバック
メッセージがクラウド側で変更されたことによってメッセージが更新されたことを通知した時に実行するコールバック
グループメッセージを既読したグループメンバーのリストを取得した時に実行するコールバック
ご注意:
UserSigExpiredCallbackコールバックを受信した場合、ログイン用のUserSig資格情報が期限切れになったため、新たに発行されたUserSigを使用して改めてログインしてください。期限切れのUserSigを引き続き使用すれば、IM SDKのログインが無限ループになります。

初期化解除

一般的には、ご利用のAppのライフサイクルはIM SDKのライフサイクルと同じで、Appを終了する前に、初期化を解除しなくてもかまいません。 ただし、運用シーンによって、IM SDKの初期化を解除する必要があります。例えば、特定のページに入ってからIM SDKを初期化し、そのページを終了してもう使用しなくなる場合。
初期化解除はワンステップだけで実施できます:それは、初期化解除インターフェースunInitの呼出しです(詳細はこちら)
サンプルコードは以下の通りです:
// SDKの初期化解除
TencentIMSDK.Uninit();

その他

SDK呼出しの実行結果に、resがTIMResult.TIM_SUCC = 0の場合、インターフェースの呼出しに成功しました。
SDKの初期化に成功した直後に、必要なイベントリスナーを追加してください。これはメッセージ漏れを防ぐためです。

よくある質問

1. IM SDKのログイン、メッセージ、グループ、セッション、リレーショナルチェーン、プロフィール、シグナルなどの機能を使用する前に、初期化を実行する必要があります。