テストとデバッグ
ローカルテスト
ローカル環境でテストする場合、SDKはデバッグモードで初期化されます。これにより、すべてのAPIにアクセスできるようになり、Wortalにゲームをアップロードすることなく統合テストを実行できます。
ほとんどのAPIはモックデータを返しますが、 player.setDataAsync と player.getDataAsync はローカルストレージへのデータの保存と読み込みを行います。こちらは、そのデータの保存と読み込み方法をテストし、確実に動作することを確認するためのものです。
エラーハンドリング
SDKはエラーが発生した際に、 ErrorMessage オブジェクトを返します。このオブジェクトには、エラーコード、エラーメッセージ、スローされたエラーの関数の呼び出し、関連するAPIドキュメントのURLなど、エラーに関する重要な情報が含まれています。
エラーとなるコードを特定し、処理することは良いプラクティスです。そうすることで、何か問題が発生した際、問題を素早く特定し、修正できるようになります。 Async サフィックスが付いているすべてのAPIは、エラーを検出するために使用できる Promise を返します。エラーコードを確認することで、エラーを適切に処理する方法を決めます。
Wortal.context.inviteAsync(payload).then(() => {
// Invite sent successfully
}).catch((error) => {
if (error.code === "NOT_SUPPORTED") {
// Invite is not supported on this platform.
// You can continue gameplay without inviting.
} else if (error.code === "NETWORK_FAILURE") {
// The player has lost their internet connection.
// You can retry the invite when the player reconnects.
} else {
// Gracefully recover and continue gameplay if possible.
}
});
デバッグ
すべてのプラットフォームにおいて、SDKはコンソールにデバッグメッセージを記録します。デバッグログレベルを有効にすると、SDKが行っていることについてより多くの情報を得ることができ、何か問題が発生した際、問題を特定し、修正できるようになります。
API サポート
すべてのAPIがすべてのプラットフォームでサポートされているとは限りません。サポートされているAPIかどうかを確認するには、以下2つの方法があります:
- サポートされていない API を呼び出した際にスローされる
NOT_SUPPORTEDエラーを検出する。
Wortal.context.inviteAsync(payload).catch((error) => {
if (error.code === "NOT_SUPPORTED") {
// Invite is not supported on this platform.
// You can continue gameplay without inviting.
return;
} else {
// Gracefully recover and continue gameplay if possible.
}
});
- APIを呼び出す前に、そのAPIが現在のプラットフォームでサポートされているかどうかをチェックする。
const supportedAPIs = Wortal.getSupportedAPIs();
if (supportedAPIs.includes("context.inviteAsync")) {
// Invite is supported on this platform.
}
どちらの方法でも構いませんが、エラーが発生しにくく、エラー処理を適切に行うことに重点を置いている最初の方法をお勧めします。