コンテンツにスキップ

サーバーメンテナンス

アプリサービスを提供する際、定期的または緊急のサーバーメンテナンスのためにサーバーメンテナンスポップアップを表示する必要がある状況があり、アプリを終了させるか、ユーザーを別のサイトにリダイレクトする必要があります。このようにして、Hive SDKはサーバーメンテナンスの状況に対応できる通知ポップアップを提供します。

ポップアップ 説明
サーバーメンテナンス 各ゲームサーバーのメンテナンスステータスを設定でき、メンテナンス期間中はゲーム関連のリンクを提供することをお勧めします

曝露方法

  1. 希望するサーバーメンテナンス通知ポップアップをHiveコンソールに登録します。
  2. メンテナンスするサーバーIDをHiveコンソールアプリセンターに登録します。
  3. Configuration.setServerIdを呼び出してメンテナンスするサーバー情報を入力します
  4. サーバーメンテナンス時にAuthV4.checkMaintenanceを呼び出すと、対応するサーバーにアクセスした際に登録されたポップアップが表示されます。


サーバーメンテナンスが行われるポイントは、サーバーメンテナンスのためにユーザーアプリサーバーへのアクセスをブロックし、すでにサーバーに接続しているユーザーをログアウトさせることを意味します。 Hive コンソールでポップアップを登録する際に、希望するサーバーメンテナンスのタイムゾーンを設定できます。

Note

Hive SDKの初期化に成功した後、AuthV4.checkMaintenanceを呼び出す必要があります。

Info

アプリで常に AuthV4.checkMaintenance を実行することをお勧めします。これにより、定期的なサーバーメンテナンスのポップアップ(定期的なサーバーチェックなど)を簡単に表示できます。


AuthV4.checkMaintenanceを呼び出す例は以下の通りです。

APIリファレンス: Unity®

using hive;

// Hive SDK UIを使用するかどうか
Boolean isShow = true;

AuthV4.checkMaintenance(isShow, (ResultAPI result, List maintenanceInfoList) => {

    if (isShow) {
        if (result.isSuccess()) {
            // 確認するものはありません
        } else if (result.needExit()) {
            // TODO: アプリ終了機能を実装する
            // 例) Application.Quit();
        } else {
            // ネットワークエラーまたはその他。再試行してください。
        }
    } else { // isShowがfalse
        if (result.isSuccess()) {
            if (maintenanceInfoList.Any()) {
                // TODO: カスタムメンテナンスダイアログを表示する。
            } else {
                // 確認するものはありません
            }
        } else {
            // ネットワークエラーまたはその他。再試行してください。
        }
    }
});

APIリファレンス: C++

#include <HIVE_SDK_Plugin/HIVE_CPP.h>
using namespace std;
using namespace hive;

// Hive SDK UIを使用するかどうか
bool isShow = true;

AuthV4::checkMaintenance(isShow, [=](ResultAPI const & result, vector const & maintenanceInfolist){

    if (isShow) {
        if (result.isSuccess()) {
            // 確認するものはありません
        } else if (reuslt.needExit()) {
            // TODO: アプリ終了機能を実装する
            // Cocos2d-xエンジンユーザー
            // 例) exit(0);
            // Unreal Engineユーザー
            // 例) UKismetSystemLibrary::QuitGame(GetWorld(), nullptr, EQuitPreference::Quit, false);
        } else {
            // ネットワークエラーまたはその他。再試行してください。
        }
    } else { // isShowがfalse
        if (result.isSuccess()) {
            if (maintenanceInfolist.size() > 0) {
                // TODO: カスタムメンテナンスダイアログを表示する。
            } else {
                // 確認するものはありません
            }
        } else {
            // ネットワークエラーまたはその他。再試行してください。
        }
    }
});

APIリファレンス: Kotlin

import com.hive.AuthV4;
import com.hive.AuthV4;
import com.hive.ResultAPI;

// Hive SDK UI 使用の有無
val isShow = true

AuthV4.checkMaintenance(isShow, object : AuthV4.AuthV4MaintenanceListener {
    override fun onAuthV4Maintenance(result: ResultAPI, maintenanceInfo: ArrayList<AuthV4.AuthV4MaintenanceInfo>?) {

        if (isShow) {
            if (result.isSuccess) {
                // 確認するものはありません
            } else if (result.needExit()) {
                // TODO: アプリ終了機能を実装する
                // 例) exitProcess(0)
            } else {
                // ネットワークエラーまたはその他。再試行してください。
            }
        } else { // isShowがfalse
            if (result.isSuccess) {
                if (maintenanceInfo != null && maintenanceInfo.size > 0) {
                    // TODO: カスタムメンテナンスダイアログを表示する。
                } else {
                    // 確認するものはありません
                }
            } else {
                // ネットワークエラーまたはその他。再試行してください。
            }
        }
    }    
})

APIリファレンス: Java

import com.hive.AuthV4;
import com.hive.ResultAPI;

// Hive SDK UIを使用するかどうか
boolean isShow = true;

AuthV4.checkMaintenance(isShow, (result, maintenanceInfo) -> {

    if (isShow) {
        if (result.isSuccess()) {
            // 確認するものはありません
        } else if (result.needExit()) {
            // TODO: アプリ終了機能を実装する
            // 例) System.exit(0);
        } else {
            // ネットワークエラーまたはその他。再試行してください。
        }
    } else { // isShow false
        if (result.isSuccess()) {
            if (maintenanceInfo != null && maintenanceInfo.size() > 0) {
                // TODO: カスタムメンテナンスダイアログを表示する。
            } else {
                // 確認するものはありません
            }
        } else {
            // ネットワークエラーまたはその他。再試行してください。
        }
    }
});

API リファレンス: Swift

import HIVEService

// Hive SDK UIを使用するかどうか
let isShow = true

AuthV4Interface.checkMaintenance(isShow) { result, maintenances in

    if isShow {
        if result.isSuccess() {
            // 確認するものはありません
        } else if result.needExit() {
            // TODO: アプリ終了機能を実装する
            // 例) exit(0)
        } else {
            // ネットワークエラーまたはその他。再試行してください。
        }
    } else { // isShowがfalse
        if result.isSuccess() {
            if (maintenances.count > 0) {
                // TODO: カスタムメンテナンスダイアログを表示する。
            } else {
                // 確認するものはありません
            }
        } else {
            // ネットワークエラーまたはその他。再試行してください。
        }
    }
}

API リファレンス: Objective-C

#import <HIVEService/HIVEService-Swift.h>

// Hive SDK UIを使用するかどうか
BOOL isShow = YES;

[HIVEAuthV4 checkMaintenance:isShow handler: ^(HIVEResultAPI *result, NSArray<HIVEAuthV4MaintenanceInfo *> *maintenanceInfolist) {

    if (isShow) {
        if (result.isSuccess) {
            // 確認するものはありません
        } else if (result.needExit) {
            // TODO: アプリ終了機能を実装する
            // 例) exit(0);
        } else {
            // ネットワークエラーまたはその他。再試行してください。
        }
    } else { // isShow false
        if (result.isSuccess) {
            if (maintenanceInfolist.count > 0) {
                // TODO: カスタムメンテナンスダイアログを表示する。
            } else {
                // 確認するものはありません
            }
        } else {
            // ネットワークエラーまたはその他。再試行してください。
        }
    }
}];
#include "HiveAuthV4.h"

// Hive SDK UIの使用
bool bIsShow = true;

FHiveAuthV4::CheckMaintenance(bIsShow, FHiveAuthV4OnMaintenanceInfoDelegate::CreateLambda([this](const FHiveResultAPI& Result, const TArray<FHiveAuthV4MaintenanceInfo>& AuthV4MaintenanceInfoArray) {

    if (bIsShow) {
        if (Result.IsSuccess()) {
            // 確認するものはありません
        } else if (Result.NeedExit()) {
            // TODO: アプリ終了機能を実装する
            // 例) UKismetSystemLibrary::QuitGame(GetWorld(), nullptr, EQuitPreference::Quit, false);
        } else {
            // ネットワークエラーまたはその他。再試行してください。
        }
    } else { // isShow false
        if (Result.IsSuccess()) {
            if (AuthV4MaintenanceInfoArray.Num() > 0) {
                // TODO: カスタムメンテナンスダイアログを表示する。
            } else {
                // 確認するものはありません
            }
        } else {
            // ネットワークエラーまたはその他。再試行してください。
        }
    }
}));

サーバーメンテナンスポップアップUIは、Hive SDKのデフォルトUIまたはカスタマイズされたUIを使用でき、isShowtrueの場合、デフォルトUIが使用されます。カスタマイズされたUIを使用する場合、isShowfalseでなければなりません。

Configuration.setserverid

サーバーメンテナンスのポップアップを表示する前に、開発者はどのサーバーをチェックするかを選択する必要があります。 Hive コンソールでは、各アプリサーバーごとに異なるサーバーメンテナンスポップアップを登録でき、各サーバーごとに異なるサーバーメンテナンスポップアップを表示できます。

コンソールで各サーバーに対して異なるメンテナンスポップアップを登録している場合、SDKはチェックするサーバーIDの値を使ってConfiguration.setServerIdを呼び出すことでチェックされるサーバーを選択します。このメソッドはAuthV4.checkMaintenanceを呼び出す前に一度だけ呼び出す必要があります。

アプリのユーザーがアプリにアクセスした後にサーバーを選択した場合、ユーザーが選択したサーバーIDの値でConfiguration.setServerIdを呼び出します。

ポップアップボタン設定に基づくアクションの実装

Hiveコンソールでは、ポップアップを閉じる、ゲームを終了する、またはURLに移動するなど、サーバーメンテナンスポップアップに表示するボタンを選択できます。ユーザーがボタンを押したときに実装する必要があるアクションは、Hive SDKのデフォルトUIを使用しているか、カスタムUIを使用しているかによって異なります。詳細については、サーバーメンテナンスポップアップUIを参照してください。

ポップアップ UI: 基本 UI

サーバーメンテナンスポップアップは、Hive SDKによって提供されるデフォルトのUIを使用するか、カスタマイズされたUIを使用できます。カスタマイズされたUIを使用する場合、Hive SDKは、アプリクライアントにカスタムUIを作成するために必要な情報を提供します。アプリクライアントは、この情報を使用してUIを描画し、公開するためのコードを実装する必要があります。

基本的なUIは、デフォルトでHive SDKによって提供されるサーバーメンテナンスポップアップUIです。基本的なUIを表示するには、以下のようにisShowtrueに設定してAuthV4.checkMaintenanceを呼び出します。

Info

定期サーバーメンテナンスまたは緊急サーバーメンテナンスのために、Hive コンソールでポップアップを別々に登録し、それを使用することをお勧めします。
<

  • 定期メンテナンス
    1. Hive コンソールでメンテナンスのタイムゾーンを設定します
    2. アプリクライアントから AuthV4.checkMaintenance を呼び出します
    3. 呼び出し結果に基づいて指定されたタイムゾーンの間のみポップアップを表示します
  • 緊急メンテナンス
    1. Hive コンソールで時間を「現在の時間」に設定します
    2. すべてのユーザーがアプリサーバーにアクセスできないようにします
    3. アプリクライアントから AuthV4.checkMaintenance を呼び出します
    4. ユーザーがアプリに再接続する際に呼び出し結果に基づいて現在の時間に応じてポップアップを表示します

API リファレンス: Unity®

using hive;

// Hive SDK UIを使用するかどうか
Boolean isShow = true;

AuthV4.checkMaintenance(isShow, (ResultAPI result, List maintenanceInfoList) => {

    if (result.isSuccess()) {
        // 確認するものはありません
    } else if (result.needExit()) {
        // TODO: アプリ終了機能を実装する
        // 例) Application.Quit();
    } else {
        // ネットワークエラーまたはその他。再試行してください。
    }
});

APIリファレンス: C++

#include <HIVE_SDK_Plugin/HIVE_CPP.h>
using namespace std;
using namespace hive;

// Hive SDK UIを使用するかどうか
bool isShow = true;

AuthV4::checkMaintenance(isShow, [=](ResultAPI const & result, vector const & maintenanceInfolist){

    if (result.isSuccess()) {
        // 確認するものはありません
    } else if (reuslt.needExit()) {
        // TODO: アプリ終了機能を実装する
        // Cocos2d-x エンジンユーザー
        // 例) exit(0);
        // Unreal Engine ユーザー
        // 例) UKismetSystemLibrary::QuitGame(GetWorld(), nullptr, EQuitPreference::Quit, false);
    } else {
        // ネットワークエラーまたはその他。再試行してください。
    }
});

API リファレンス: Kotlin

import com.hive.AuthV4;
import com.hive.AuthV4;
import com.hive.ResultAPI;

// Hive SDK UIを使用するかどうか
val isShow = true

AuthV4.checkMaintenance(isShow, object : AuthV4.AuthV4MaintenanceListener {
    override fun onAuthV4Maintenance(result: ResultAPI, maintenanceInfo: ArrayList<AuthV4.AuthV4MaintenanceInfo>?) {

        if (result.isSuccess) {
            // 確認するものはありません
        } else if (result.needExit()) {
            // TODO: アプリ終了機能を実装する
            // 例) exitProcess(0)
        } else {
            // ネットワークエラーまたはその他。再試行してください。
        }    
    }    
})

APIリファレンス: Java

import com.hive.AuthV4;
import com.hive.ResultAPI;

// Hive SDK UIを使用するかどうか
boolean isShow = true;

AuthV4.checkMaintenance(isShow, (result, maintenanceInfo) -> {

    if (result.isSuccess()) {
        // 確認するものはありません
    } else if (result.needExit()) {
        // TODO: アプリ終了機能を実装する
        // 例) System.exit(0);
    } else {
        // ネットワークエラーまたはその他。再試行してください。
    }
});

API リファレンス: Swift

import HIVEService

// Hive SDK UIを使用するかどうか
let isShow = true

AuthV4Interface.checkMaintenance(isShow) { result, maintenances in

    if result.isSuccess() {
        // 確認するものはありません
    } else if result.needExit() {
        // TODO: アプリ終了機能を実装する
        // 例) exit(0)
    } else {
        // ネットワークエラーまたはその他。再試行してください。
    }
}

API リファレンス: Objective-C

#import <HIVEService/HIVEService-Swift.h> 

// Hive SDK UIを使用するかどうか
BOOL isShow = YES;

[HIVEAuthV4 checkMaintenance:isShow handler: ^(HIVEResultAPI *result, NSArray<HIVEAuthV4MaintenanceInfo *> *maintenanceInfolist) {

    if (result.isSuccess) {
        // 確認するものはありません
    } else if (result.needExit) {
        // TODO: アプリ終了機能を実装する
        // 例) exit(0);
    } else {
        // ネットワークエラーまたはその他。再試行してください。
    }
}];
#include "HiveAuthV4.h"

// Hive SDK UIを使用するかどうか
bool bIsShow = true;

FHiveAuthV4::CheckMaintenance(bIsShow, FHiveAuthV4OnMaintenanceInfoDelegate::CreateLambda([this](const FHiveResultAPI& Result, const TArray<FHiveAuthV4MaintenanceInfo>& AuthV4MaintenanceInfoArray) {

    if (Result.IsSuccess()) {
        // 確認するものはありません
    } else if (Result.NeedExit()) {
        // TODO: アプリ終了機能を実装する
        // 例) UKismetSystemLibrary::QuitGame(GetWorld(), nullptr, EQuitPreference::Quit, false);
    } else {
        // ネットワークエラーまたはその他。再試行してください。
    }
}));

ゲーム終了ボタンを使用したアプリの終了の実装

Hive コンソールの ゲーム終了 ボタンを使用すると、Hive SDK はアプリが終了すべきであることを示すイベント (NeedExit) を ResultAPI result に送信します。

アプリクライアントは、このイベントを受信した後にアプリを終了するコードを実装して実行する必要があります。この部分は、Hive SDKのデフォルトUIとカスタムUIの両方で同じです。

詳細ビュー(URLに移動)ボタンを使用したURLナビゲーションの実装

Hive コンソールでベースURLを設定し、URLに移動を有効にすると、詳細を表示ボタンを押すことで、外部ブラウザが自動的に開き、Hive SDKによって設定されたベースURLのアドレスにアプリユーザーがリダイレクトされます。

閉じるボタンを使用したポップアップの閉鎖の実装

Hive コンソールでポップアップを閉じるボタンを使用する際、閉じるボタンを押すとHive SDKによってポップアップウィンドウが自動的に閉じられます。

ユーザー行動の返却

基本的なUIでは、ポップアップウィンドウでユーザーが押したボタンをResultAPIオブジェクトを通じて知ることができます。ユーザーがボタンを押すと、AuthV4.checkMaintenanceのコールバック結果であるResultAPIオブジェクトを取得し、このオブジェクトからユーザーが取ったアクションを知ることができます。

ポップアップ UI: カスタム UI

カスタムUIは、アプリ開発者によって直接実装されたサーバーメンテナンスポップアップUIです。AuthV4.checkMaintenanceisShow=falseが呼び出されると、アプリクライアントはAuthV4MaintenanceInfoオブジェクトの形式でポップアップUIを実装するために必要な情報を受け取ります。開発者はこのオブジェクトを使用して、カスタムUIを直接実装および表示する必要があります。この値がnullとして返される場合、ポップアップに表示するコンテンツがないことを意味します。

以下は、isShowfalseのときの例です。

APIリファレンス: Unity®

using hive;

// Hive SDK UIを使用するかどうか
Boolean isShow = false;

AuthV4.checkMaintenance(isShow, (ResultAPI result, List maintenanceInfoList) => {

    if (result.isSuccess()) {
        if (maintenanceInfoList.Any()) {
            // TODO: カスタムメンテナンスダイアログを表示します。
        } else {
            // チェックするものはありません
        }
    } else {
        // ネットワークエラーまたはその他。再試行してください。
    }
});

API リファレンス: C++

#include <HIVE_SDK_Plugin/HIVE_CPP.h>
using namespace std;
using namespace hive;

// Hive SDK UIを使用するかどうか
bool isShow = flase;

AuthV4::checkMaintenance(isShow, [=](ResultAPI const & result, vector const & maintenanceInfolist){

    if (result.isSuccess()) {
        if (maintenanceInfolist.size() > 0) {
            // TODO: カスタムメンテナンスダイアログを表示します。
        } else {
            // チェックするものはありません
        }
    } else {
        // ネットワークエラーまたはその他。再試行してください。
    }
});

APIリファレンス: Kotlin

import com.hive.AuthV4;
import com.hive.AuthV4;
import com.hive.ResultAPI;

// Hive SDK UIを使用するかどうか
val isShow = false

AuthV4.checkMaintenance(isShow, object : AuthV4.AuthV4MaintenanceListener {
    override fun onAuthV4Maintenance(result: ResultAPI, maintenanceInfo: ArrayList<AuthV4.AuthV4MaintenanceInfo>?) {

        if (result.isSuccess) {
            if (maintenanceInfo != null && maintenanceInfo.size > 0) {
                // TODO: カスタムメンテナンスダイアログを表示します。
            } else {
                // チェックするものはありません
            }
        } else {
            // ネットワークエラーまたはその他。再試行してください。
        }
    }    
})

APIリファレンス: Java

import com.hive.AuthV4;
import com.hive.ResultAPI;
// Whether to use Hive SDK UI
boolean isShow = false;

AuthV4.checkMaintenance(isShow, (result, maintenanceInfo) -> {

    if (result.isSuccess()) {
        if (maintenanceInfo != null && maintenanceInfo.size() > 0) {
            // TODO: Show custom maintenance dialog.
        } else {
            // There's nothing to check
        }
    } else {
        // Network error or other. try again.
    }
});

API リファレンス: Swift

import HIVEService

// Hive SDK UIを使用するかどうか
let isShow = false

AuthV4Interface.checkMaintenance(isShow) { result, maintenances in

    if result.isSuccess() {
        if (maintenances.count > 0) {
            // TODO: カスタムメンテナンスダイアログを表示します。
        } else {
            // チェックするものはありません
        }
    } else {
        // ネットワークエラーまたはその他。再試行してください。
    }
}

API リファレンス: Objective-C

#import <HIVEService/HIVEService-Swift.h>

// Hive SDK UIを使用するかどうか
BOOL isShow = YES;

[HIVEAuthV4 checkMaintenance:isShow handler: ^(HIVEResultAPI *result, NSArray<HIVEAuthV4MaintenanceInfo *> *maintenanceInfolist) {

    if (result.isSuccess) {
        if (maintenanceInfolist.count > 0) {
            // TODO: カスタムメンテナンスダイアログを表示します。
        } else {
            // 確認するものはありません
        }
    } else {
        // ネットワークエラーまたはその他。再試行してください。
    }
}];
#include "HiveAuthV4.h"

// Hive SDK UI 使用状況
bool bIsShow = true;

FHiveAuthV4::CheckMaintenance(bIsShow, FHiveAuthV4OnMaintenanceInfoDelegate::CreateLambda([this](const FHiveResultAPI& Result, const TArray<FHiveAuthV4MaintenanceInfo>& AuthV4MaintenanceInfoArray) {

    if (Result.IsSuccess()) {
        if (AuthV4MaintenanceInfoArray.Num() > 0) {
            // TODO: カスタムメンテナンスダイアログを表示します。
        } else {
            // チェックするものはありません
        }
    } else {
        // ネットワークエラーまたはその他。再試行してください。
    }
}));

Authv4maintenanceinfoオブジェクト

フィールド名 説明 タイプ
title ポップアップのタイトル 文字列
message ポップアップの内容 文字列
button ポップアップボタンのラベルテキスト 文字列
action ポップアップボタンが押されたときに実行されるアクションを示します
OPEN_URL: 外部ブラウザに渡されたURLを実行します
EXIT: アプリを終了します
DONE: 処理を行わずに検査ポップアップを閉じます
AuthV4MaintenanceActionType 列挙型
url 外部ブラウザで開くURL。
actionフィールドの値がOPEN_URLのときに有効です
文字列
remainingTime 検査が完了するまでの残り時間(秒)です。時間はリアルタイムで更新され、0秒になるとアプリが終了します 整数
startDate 検査開始日 文字列
endDate 検査終了日 文字列
customerButton カスタマーサービスボタンのテキスト(検査ポップアップには空の文字列が渡されます) 文字列
customerLink カスタマーサービスボタンのリンク(検査ポップアップには空の文字列が渡されます) 文字列
exButtons ポップアップボタンの情報(最大3つまで渡すことができます) JSONArray
exButtons.action ポップアップボタンが押されたときに実行されるアクションを示します
OPEN_URL: 外部ブラウザに渡されたURLを実行します
EXIT: アプリを終了します
DONE: 処理を行わずに検査ポップアップを閉じます
AuthV4MaintenanceActionType 列挙型
exButtons.button ポップアップボタンのラベルテキスト 文字列
exButtons.url 外部ブラウザで開くURL。
actionフィールドの値がOPEN_URLのときに有効です
文字列


開発者は、このオブジェクトを使用してアプリクライアントにコードを実装し、カスタムサーバーメンテナンスポップアップを作成して表示します。このオブジェクトを使用することで、サーバーがチェックされるたびにカスタムサーバーメンテナンスポップアップが自動的に表示されるようになります。

Note

サーバーメンテナンス時間がHiveコンソールで正しく設定されていない場合、AuthV4MaintenanceInfoオブジェクトとともにnullが返されます。

Info

定期的なサーバーメンテナンスや緊急サーバーメンテナンスのために、Hive コンソールでポップアップを別々に登録し、それを使用することをお勧めします。

  • 定期メンテナンス
    1. Hive コンソールでメンテナンスのタイムゾーンを設定します
    2. アプリクライアントから AuthV4.checkMaintenance を呼び出します
    3. 呼び出し結果に基づいて指定されたタイムゾーン内でのみポップアップを表示します
  • 緊急メンテナンス
    1. Hive コンソールで時間を「現在の時間」に設定します
    2. すべてのユーザーがアプリサーバーにアクセスできないようにします
    3. アプリクライアントから AuthV4.checkMaintenance を呼び出します
    4. 呼び出し結果に基づいて現在の時間に従ってユーザーがアプリに再接続する際にポップアップを表示します

ゲーム終了ボタンを使用したアプリ終了の実装

Hiveコンソールのエンドゲームボタンを使用すると、Hive SDKは、アプリを終了する必要があることを示すイベント(Exit)をResultAPI resultに送信します。このイベントを受信した後、アプリクライアントはアプリを終了するためのコードを実装して実行する必要があります。この部分は、Hive SDKのデフォルトUIとカスタムUIの両方で同じです。

詳細ビューを使用する際のURLナビゲーションの実装(URLに移動)ボタン

デフォルトURLがHiveコンソールに設定されていて、URLに移動が有効になっている場合、開発者は詳細を表示ボタンが押されたときにユーザーをデフォルトURLとして設定されたアドレスにリダイレクトするアクションを実装する必要があります。これを実装するために必要な情報はAuthV4MaintenanceInfoオブジェクトにあります。

例えば、ベースURLを設定すると、特定のURLに移動する必要があることを示す値(OPEN_URL)がAuthV4MaintenanceInfoオブジェクトのactionフィールドに返されます。この値をアプリクライアントが受け取った場合、urlにあるURLにアプリユーザーをリダイレクトするコードを実装しなければなりません。

閉じるボタンを使用したポップアップの閉鎖の実装

Hive コンソールの閉じるボタンを使用する場合、開発者は閉じるボタンが押されたときに AuthV4MaintenanceInfo オブジェクトの情報に基づいてポップアップを自動的に閉じるコードを実装する必要があります。

エクスポージャー順序

通知ポップアップは同時に表示されません。すべての通知ポップアップ(国の制限、更新、一般通知、サーバーメンテナンス)をコンソールに登録している場合、通知ポップアップが表示される順序は次のとおりです。

  1. 国制限ポップアップ
    1. 役割: 特定の国から接続している場合にアクセスがブロックされることをユーザーに通知する
    2. 次のステップ: ユーザーにアプリを閉じるよう促す
  2. 更新ポップアップ
    1. 役割: 古いバージョンのアプリを使用している場合に更新を促す(国による制限がない場合)
    2. 次のステップ: アプリを閉じ、ユーザーをアプリマーケットに誘導して最新バージョンに更新する
  3. 一般通知ポップアップ
    1. 役割: アプリが国による制限がなく、最新バージョンである場合にアプリの更新や通知に関する情報を表示する
  4. サーバーメンテナンスポップアップ
    1. 役割: サーバーメンテナンスをユーザーに通知する(国による制限がなく、アプリが最新バージョンであり、一般通知が提供されている場合)
    2. 次のステップ: ユーザーにアプリを閉じるよう促す

例1: 制限された国からユーザーがアクセスした場合

制限された国からユーザーが接続した場合、国の制限ポップアップのみが表示され、ゲームは終了します。国の制限ポップアップがコンソールに登録されていない場合、国の制限ポップアップは表示されず、以下の例2に示すように、更新ポップアップ表示ステップに進みます。

例2: ユーザーが許可された国からアクセスする場合

ユーザーが許可された国からアクセスした場合、国の制限ポップアップは表示されません。その後に表示されるポップアップは、アプリが最新バージョンかどうかに応じて、以下のように異なります。

アプリが古いバージョンの場合(アプリが更新されていない場合)

更新ポップアップを表示します。更新ポップアップは、ゲームを終了した後にユーザーにマーケットから最新バージョンにゲームを更新するよう促します。

アプリが最新バージョンである場合(アプリが更新されている場合)

更新ポップアップを表示せずに一般的なお知らせポップアップを表示します。サーバーがメンテナンス中の場合、サーバーメンテナンスポップアップが表示されます