ข้ามไปที่เนื้อหา

การบำรุงรักษาเซิร์ฟเวอร์

เมื่อให้บริการแอป จะมีสถานการณ์ที่คุณต้องแสดงป๊อปอัพการบำรุงรักษาเซิร์ฟเวอร์เนื่องจากการบำรุงรักษาเซิร์ฟเวอร์ตามปกติหรือฉุกเฉิน และต้องปิดแอปหรือเปลี่ยนเส้นทางผู้ใช้ไปยังเว็บไซต์อื่น ในลักษณะนี้ SDK ของ Hive จะให้ป๊อปอัพการแจ้งเตือนที่สามารถตอบสนองต่อสถานการณ์การบำรุงรักษาเซิร์ฟเวอร์ได้

ป๊อปอัพ คำอธิบาย
การบำรุงรักษาเซิร์ฟเวอร์ คุณสามารถตั้งสถานะการบำรุงรักษาสำหรับเซิร์ฟเวอร์เกมแต่ละตัว และแนะนำให้จัดเตรียมลิงก์ที่เกี่ยวข้องกับเกมในช่วงระยะเวลาการบำรุงรักษา

วิธีการเปิดเผย

  1. ลงทะเบียน ป๊อปอัพประกาศการบำรุงรักษาเซิร์ฟเวอร์ ที่ต้องการในคอนโซล Hive
  2. ลงทะเบียน ID เซิร์ฟเวอร์ที่จะบำรุงรักษาใน ศูนย์แอปคอนโซล Hive
  3. เรียกใช้ Configuration.setServerId เพื่อ ป้อนข้อมูลเซิร์ฟเวอร์ที่จะบำรุงรักษา
  4. เมื่อเรียกใช้ AuthV4.checkMaintenance ในช่วงเวลาการบำรุงรักษาเซิร์ฟเวอร์ ป๊อปอัพที่ลงทะเบียนจะถูกแสดงเมื่อเข้าถึงเซิร์ฟเวอร์ที่เกี่ยวข้อง.


จุดที่ทำการบำรุงรักษาเซิร์ฟเวอร์หมายถึงการบล็อกการเข้าถึงเซิร์ฟเวอร์แอปผู้ใช้สำหรับการบำรุงรักษาเซิร์ฟเวอร์และการออกจากระบบผู้ใช้ที่เชื่อมต่อกับเซิร์ฟเวอร์แล้ว คุณสามารถตั้งค่าโซนเวลาการบำรุงรักษาเซิร์ฟเวอร์ที่ต้องการเมื่อทำการลงทะเบียนป๊อปอัปในคอนโซล Hive

Note

หลังจากที่เริ่มต้น Hive SDK สำเร็จแล้ว คุณต้องเรียกใช้ AuthV4.checkMaintenance

Info

แนะนำให้เรียกใช้ AuthV4.checkMaintenance ในแอปเสมอ ซึ่งจะช่วยให้สามารถแสดงป๊อปอัพการบำรุงรักษาเซิร์ฟเวอร์เป็นระยะ ๆ ได้อย่างง่ายดาย เช่น การตรวจสอบเซิร์ฟเวอร์ตามปกติ


ตัวอย่างของการเรียกใช้ AuthV4.checkMaintenance มีดังนี้

API Reference: Unity®

using hive;

// Whether to use Hive SDK UI
Boolean isShow = true;

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

    if (isShow) {
        if (result.isSuccess()) {
            // ไม่มีอะไรให้ตรวจสอบ
        } else if (result.needExit()) {
            // TODO: Implement app termination functionality
            // Example) Application.Quit();
        } else {
            // ข้อผิดพลาดของเครือข่ายหรืออื่น ๆ ลองอีกครั้ง
        }
    } else { // isShow false
        if (result.isSuccess()) {
            if (maintenanceInfoList.Any()) {
                // TODO: Show custom maintenance dialog.
            } else {
                // ไม่มีอะไรให้ตรวจสอบ
            }
        } else {
            // ข้อผิดพลาดของเครือข่ายหรืออื่น ๆ ลองอีกครั้ง
        }
    }
});

API Reference: C++

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

// Whether to use 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: Implement app termination functionality
            // Cocos2d-x engine user
            // Example) exit(0);
            // Unreal Engine User
            // Example) UKismetSystemLibrary::QuitGame(GetWorld(), nullptr, EQuitPreference::Quit, false);
        } else {
            // ข้อผิดพลาดของเครือข่ายหรืออื่น ๆ ลองอีกครั้ง
        }
    } else { // isShow false
        if (result.isSuccess()) {
            if (maintenanceInfolist.size() > 0) {
                // TODO: Show custom maintenance dialog.
            } else {
                // ไม่มีอะไรให้ตรวจสอบ
            }
        } else {
            // ข้อผิดพลาดของเครือข่ายหรืออื่น ๆ ลองอีกครั้ง
        }
    }
});

API Reference: Kotlin

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

// การใช้ UI ของ Hive SDK
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: Implement app termination functionality
                // Example) exitProcess(0)
            } else {
                // ข้อผิดพลาดของเครือข่ายหรืออื่น ๆ ลองอีกครั้ง
            }
        } else { // isShow false
            if (result.isSuccess) {
                if (maintenanceInfo != null && maintenanceInfo.size > 0) {
                    // TODO: แสดงกล่องโต้ตอบการบำรุงรักษาที่กำหนดเอง
                } else {
                    // ไม่มีอะไรให้ตรวจสอบ
                }
            } else {
                // ข้อผิดพลาดของเครือข่ายหรืออื่น ๆ ลองอีกครั้ง
            }
        }
    }    
})

API Reference: Java

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

// Whether to use Hive SDK UI
boolean isShow = true;

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

    if (isShow) {
        if (result.isSuccess()) {
            // ไม่มีอะไรให้ตรวจสอบ
        } else if (result.needExit()) {
            // TODO: Implement app termination functionality
            // Example) System.exit(0);
        } else {
            // ข้อผิดพลาดของเครือข่ายหรืออื่น ๆ ลองอีกครั้ง
        }
    } else { // isShow false
        if (result.isSuccess()) {
            if (maintenanceInfo != null && maintenanceInfo.size() > 0) {
                // TODO: Show custom maintenance dialog.
            } else {
                // ไม่มีอะไรให้ตรวจสอบ
            }
        } else {
            // ข้อผิดพลาดของเครือข่ายหรืออื่น ๆ ลองอีกครั้ง
        }
    }
});

API Reference: Swift

import HIVEService

// Hive SDK UI จะใช้หรือไม่
let isShow = true

AuthV4Interface.checkMaintenance(isShow) { result, maintenances in

    ถ้า isShow {
        ถ้า result.isSuccess() {
            // ไม่มีอะไรให้ตรวจสอบ
        } else if result.needExit() {
            // TODO: Implement app termination functionality
            // ตัวอย่าง) exit(0)
        } else {
            // ข้อผิดพลาดของเครือข่ายหรืออื่น ๆ ลองอีกครั้ง
        }
    } else { // isShow เป็น false
        ถ้า result.isSuccess() {
            ถ้า (maintenances.count > 0) {
                // TODO: แสดงกล่องโต้ตอบการบำรุงรักษาที่กำหนดเอง
            } else {
                // ไม่มีอะไรให้ตรวจสอบ
            }
        } else {
            // ข้อผิดพลาดของเครือข่ายหรืออื่น ๆ ลองอีกครั้ง
        }
    }
}

API Reference: Objective-C

#import <HIVEService/HIVEService-Swift.h>

// Whether to use 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: Implement app termination functionality
            // Example) exit(0);
        } else {
            // ข้อผิดพลาดของเครือข่ายหรืออื่น ๆ ลองอีกครั้ง
        }
    } else { // isShow false
        if (result.isSuccess) {
            if (maintenanceInfolist.count > 0) {
                // TODO: Show custom maintenance dialog.
            } else {
                // ไม่มีอะไรให้ตรวจสอบ
            }
        } else {
            // ข้อผิดพลาดของเครือข่ายหรืออื่น ๆ ลองอีกครั้ง
        }
    }
}];
#include "HiveAuthV4.h"

// การใช้งาน UI ของ Hive SDK
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: Implement app termination functionality
            // Example) UKismetSystemLibrary::QuitGame(GetWorld(), nullptr, EQuitPreference::Quit, false);
        } else {
            // ข้อผิดพลาดของเครือข่ายหรืออื่น ๆ ลองอีกครั้ง
        }
    } else { // isShow false
        if (Result.IsSuccess()) {
            if (AuthV4MaintenanceInfoArray.Num() > 0) {
                // TODO: แสดงกล่องสนทนาบำรุงรักษาที่กำหนดเอง
            } else {
                // ไม่มีอะไรให้ตรวจสอบ
            }
        } else {
            // ข้อผิดพลาดของเครือข่ายหรืออื่น ๆ ลองอีกครั้ง
        }
    }
}));

UI ป๊อปอัพการบำรุงรักษาเซิร์ฟเวอร์สามารถใช้ UI เริ่มต้นของ SDK Hive หรือ UI ที่ปรับแต่งได้ และถ้า isShow เป็น true จะใช้ UI เริ่มต้น หากใช้ UI ที่ปรับแต่ง isShow ต้องเป็น false

Configuration.setserverid

ก่อนแสดงป๊อปอัพการบำรุงรักษาเซิร์ฟเวอร์ นักพัฒนาต้องเลือกเซิร์ฟเวอร์ที่จะตรวจสอบ คอนโซล Hive ช่วยให้คุณลงทะเบียนป๊อปอัพการบำรุงรักษาเซิร์ฟเวอร์แตกต่างกันสำหรับแต่ละแอปเซิร์ฟเวอร์ และคุณสามารถแสดงป๊อปอัพการบำรุงรักษาเซิร์ฟเวอร์ที่แตกต่างกันสำหรับแต่ละเซิร์ฟเวอร์ได้

หากคุณได้ลงทะเบียนป๊อปอัพการบำรุงรักษาที่แตกต่างกันสำหรับแต่ละเซิร์ฟเวอร์ในคอนโซล SDK จะเลือกเซิร์ฟเวอร์ที่จะตรวจสอบโดยการเรียก Configuration.setServerId พร้อมกับค่า ID ของเซิร์ฟเวอร์ที่จะตรวจสอบ คุณเพียงแค่ต้องเรียกวิธีนี้ก่อนที่จะเรียก AuthV4.checkMaintenance

หากผู้ใช้แอปเลือกเซิร์ฟเวอร์หลังจากเข้าถึงแอป ให้เรียก Configuration.setServerId ด้วยค่าหมายเลขเซิร์ฟเวอร์ที่ผู้ใช้เลือก

การดำเนินการตามการตั้งค่าปุ่มป๊อปอัป

ในคอนโซล Hive คุณสามารถเลือกปุ่มที่จะแสดงในป๊อปอัปการบำรุงรักษาเซิร์ฟเวอร์ เช่น การปิดป๊อปอัป การออกจากเกม หรือการนำทางไปยัง URL การดำเนินการที่ต้องดำเนินการเมื่อผู้ใช้กดปุ่มขึ้นอยู่กับว่าคุณกำลังใช้ UI เริ่มต้นของ Hive SDK หรือ UI ที่กำหนดเอง สำหรับรายละเอียดเพิ่มเติม โปรดดูที่ Server Maintenance Popup UI.

ป๊อปอัพ UI: UI พื้นฐาน

ป๊อปอัพการบำรุงรักษาเซิร์ฟเวอร์สามารถใช้ UI เริ่มต้นที่จัดเตรียมโดย Hive SDK หรือ UI ที่กำหนดเอง เมื่อใช้ UI ที่กำหนดเอง, Hive SDK จะให้ข้อมูลที่จำเป็นสำหรับการสร้าง UI ที่กำหนดเองแก่แอปไคลเอนต์ แอปไคลเอนต์ต้องดำเนินการโค้ดเพื่อวาดและเปิดเผย UI โดยใช้ข้อมูลนี้.

UI พื้นฐานคือ UI ป๊อปอัพการบำรุงรักษาเซิร์ฟเวอร์ที่จัดเตรียมโดย SDK ของแบรนด์ Hive โดยค่าเริ่มต้น เพื่อแสดง UI พื้นฐาน ให้เรียกใช้ AuthV4.checkMaintenance โดยตั้งค่า isShow เป็น true ตามที่แสดงด้านล่าง

Info

แนะนำให้ลงทะเบียนป๊อปอัพแยกต่างหากสำหรับการบำรุงรักษาเซิร์ฟเวอร์ปกติหรือการบำรุงรักษาเซิร์ฟเวอร์ฉุกเฉินในคอนโซล Hive และใช้งานมัน.

  • การบำรุงรักษาปกติ
    1. ตั้งค่าเขตเวลาการบำรุงรักษาในคอนโซล Hive
    2. เรียกใช้ AuthV4.checkMaintenance จากแอปไคลเอนต์
    3. แสดงป๊อปอัพเฉพาะในช่วงเวลาที่กำหนดตามผลการเรียก
  • การบำรุงรักษาฉุกเฉิน
    1. ตั้งเวลาเป็น "เวลาปัจจุบัน" ในคอนโซล Hive
    2. บล็อกผู้ใช้ทั้งหมดไม่ให้เข้าถึงเซิร์ฟเวอร์แอป
    3. เรียกใช้ AuthV4.checkMaintenance จากแอปไคลเอนต์
    4. แสดงป๊อปอัพตามเวลาปัจจุบันเมื่อผู้ใช้เชื่อมต่อใหม่กับแอปตามผลการเรียก

API Reference: 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 Reference: 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: Implement app termination functionality
        // Cocos2d-x engine user
        // Example) exit(0);
        // Unreal Engine User
        // Example) UKismetSystemLibrary::QuitGame(GetWorld(), nullptr, EQuitPreference::Quit, false);
    } else {
        // ข้อผิดพลาดของเครือข่ายหรืออื่นๆ ลองอีกครั้ง
    }
});

API Reference: 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: Implement app termination functionality
            // Example) exitProcess(0)
        } else {
            // เกิดข้อผิดพลาดทางเครือข่ายหรืออื่น ๆ ลองอีกครั้ง
        }    
    }    
})

API Reference: 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: Implement app termination functionality
        // ตัวอย่าง) System.exit(0);
    } else {
        // เกิดข้อผิดพลาดทางเครือข่ายหรืออื่น ๆ ลองอีกครั้ง
    }
});

API Reference: Swift

import HIVEService

// ว่าจะใช้ Hive SDK UI หรือไม่
let isShow = true

AuthV4Interface.checkMaintenance(isShow) { result, maintenances in

    if result.isSuccess() {
        // ไม่มีอะไรให้ตรวจสอบ
    } else if result.needExit() {
        // TODO: Implement app termination functionality
        // ตัวอย่าง) exit(0)
    } else {
        // ข้อผิดพลาดของเครือข่ายหรืออื่น ๆ ลองอีกครั้ง
    }
}

API Reference: 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"

// ว่าจะใช้ UI ของ Hive SDK หรือไม่
bool bIsShow = true;

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

    if (Result.IsSuccess()) {
        // ไม่มีอะไรให้ตรวจสอบ
    } else if (Result.NeedExit()) {
        // TODO: Implement app termination functionality
        // Example) UKismetSystemLibrary::QuitGame(GetWorld(), nullptr, EQuitPreference::Quit, false);
    } else {
        // เกิดข้อผิดพลาดในเครือข่ายหรืออื่น ๆ ลองอีกครั้ง
    }
}));

การดำเนินการออกจากแอปเมื่อใช้ปุ่มออกจากเกม

หากคุณใช้ปุ่ม ออกจากเกม ในคอนโซล Hive SDK จะส่งเหตุการณ์ (NeedExit) ไปยัง ResultAPI result เพื่อบอกว่าแอปควรออกจากระบบ

แอปพลิเคชันลูกค้าต้องดำเนินการและเรียกใช้โค้ดเพื่อสิ้นสุดแอปหลังจากได้รับเหตุการณ์นี้ และส่วนนี้จะเหมือนกันสำหรับทั้ง UI เริ่มต้นของ Hive SDK และ UI ที่กำหนดเอง

การนำทาง URL เมื่อใช้ปุ่มดูรายละเอียด (ไปที่ URL)

หากคุณตั้งค่า base URL ในคอนโซล Hive และเปิดใช้งาน navigate to URL การกดปุ่ม view details จะเปิดเบราว์เซอร์ภายนอกโดยอัตโนมัติและเปลี่ยนเส้นทางผู้ใช้แอปไปยังที่อยู่ที่ตั้งค่าใน base URL โดย Hive SDK.

การดำเนินการปิดป๊อปอัพเมื่อใช้ปุ่มปิด

เมื่อใช้ ปุ่มปิดป๊อปอัพ ในคอนโซล Hive การกดปุ่มปิดจะทำให้ป๊อปอัพปิดโดยอัตโนมัติผ่าน Hive SDK

การกลับมาของพฤติกรรมผู้ใช้

ใน UI พื้นฐาน คุณสามารถทราบได้ว่าผู้ใช้กดปุ่มใดในหน้าต่างป๊อปอัปผ่านวัตถุ ResultAPI เมื่อผู้ใช้กดปุ่ม คุณจะได้รับวัตถุ ResultAPI ซึ่งเป็นผลลัพธ์ของการเรียกกลับจาก AuthV4.checkMaintenance และคุณสามารถทราบการกระทำที่ผู้ใช้ทำจากวัตถุนี้

ป๊อปอัพ UI: UI ที่กำหนดเอง

UI ที่กำหนดเองเป็น UI ป๊อปอัพการบำรุงรักษาเซิร์ฟเวอร์ที่ดำเนินการโดยตรงโดยนักพัฒนาแอป เมื่อเรียกใช้ isShow=false พร้อมกับ AuthV4.checkMaintenance ไคลเอนต์แอปจะได้รับข้อมูลที่จำเป็นในการดำเนินการ UI ป๊อปอัพในรูปแบบของวัตถุ AuthV4MaintenanceInfo นักพัฒนาต้องใช้วัตถุนี้ในการดำเนินการและแสดง UI ที่กำหนดเองโดยตรง หากค่าดังกล่าวถูกส่งคืนเป็น null หมายความว่าไม่มีเนื้อหาที่จะแสดงในป๊อปอัพ

ด้านล่างนี้เป็นตัวอย่างเมื่อ isShow เป็น false

API Reference: 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 Reference: 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: Show custom maintenance dialog.
            } else {
                // There's nothing to check
            }
        } else {
            // Network error or other. try again.
        }
    }    
})

API Reference: 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 Reference: 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 Reference: 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"

// สถานะการใช้งาน UI ของ Hive SDK
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 enum
url URL ที่จะเปิดในเบราว์เซอร์ภายนอก
ใช้ได้เมื่อค่าในฟิลด์ action เป็น OPEN_URL
สตริง
remainingTime เวลาที่เหลือในวินาทีจนกว่าการตรวจสอบจะเสร็จสมบูรณ์ เวลาจะถูกอัปเดตแบบเรียลไทม์ และแอปจะออกเมื่อถึง 0 วินาที จำนวนเต็ม
startDate วันที่เริ่มต้นการตรวจสอบ สตริง
endDate วันที่สิ้นสุดการตรวจสอบ สตริง
customerButton ข้อความปุ่มบริการลูกค้า (จะส่งเป็นสตริงว่างในป๊อปอัปการตรวจสอบ) สตริง
customerLink ลิงก์ปุ่มบริการลูกค้า (จะส่งเป็นสตริงว่างในป๊อปอัปการตรวจสอบ) สตริง
exButtons ข้อมูลปุ่มป๊อปอัป (สามารถส่งได้สูงสุด 3 ปุ่ม) JSONArray
exButtons.action ระบุว่าการกระทำใดจะถูกดำเนินการเมื่อปุ่มป๊อปอัปถูกกด
OPEN_URL: ดำเนินการ URL ที่ส่งไปยังเบราว์เซอร์ภายนอก
EXIT: ออกจากแอป
DONE: ปิดป๊อปอัปการตรวจสอบโดยไม่มีการประมวลผล
AuthV4MaintenanceActionType enum
exButtons.button ข้อความป้ายของปุ่มป๊อปอัป สตริง
exButtons.url URL ที่จะเปิดในเบราว์เซอร์ภายนอก
ใช้ได้เมื่อค่าในฟิลด์ action เป็น OPEN_URL
สตริง


นักพัฒนาจะนำโค้ดไปใช้ในแอปไคลเอนต์เพื่อสร้างและแสดงป๊อปอัพการบำรุงรักษาเซิร์ฟเวอร์ที่กำหนดเองโดยใช้วัตถุนี้ โดยการใช้วัตถุนี้ ป๊อปอัพการบำรุงรักษาเซิร์ฟเวอร์ที่กำหนดเองสามารถแสดงโดยอัตโนมัติทุกครั้งที่มีการตรวจสอบเซิร์ฟเวอร์

Note

หากเวลาบำรุงรักษาเซิร์ฟเวอร์ที่ตั้งไว้ในคอนโซล Hive ไม่ถูกต้อง จะส่งคืน null พร้อมกับวัตถุ AuthV4MaintenanceInfo

Info

แนะนำให้ลงทะเบียนป๊อปอัปแยกต่างหากสำหรับการบำรุงรักษาเซิร์ฟเวอร์ปกติหรือการบำรุงรักษาเซิร์ฟเวอร์ฉุกเฉินในคอนโซล Hive และใช้งานมัน.

  • การบำรุงรักษาปกติ
    1. ตั้งค่าเขตเวลาการบำรุงรักษาในคอนโซล Hive
    2. เรียกใช้ AuthV4.checkMaintenance จากแอปไคลเอนต์
    3. แสดงป๊อปอัพเฉพาะในช่วงเวลาที่กำหนดตามผลการเรียก
  • การบำรุงรักษาฉุกเฉิน
    1. ตั้งค่าเวลาเป็น "เวลาปัจจุบัน" ในคอนโซล Hive
    2. ปิดกั้นผู้ใช้ทั้งหมดไม่ให้เข้าถึงเซิร์ฟเวอร์แอป
    3. เรียกใช้ AuthV4.checkMaintenance จากแอปไคลเอนต์
    4. แสดงป๊อปอัพเมื่อผู้ใช้เชื่อมต่อใหม่กับแอปตามเวลาในปัจจุบันตามผลการเรียก

การดำเนินการออกจากแอปเมื่อใช้ปุ่มออกจากเกม

หากคุณใช้ปุ่ม End Game ในคอนโซล Hive SDK จะส่งเหตุการณ์ (Exit) ไปยัง ResultAPI result เพื่อบอกว่าแอปควรจะถูกปิด แอปไคลเอนต์ต้องดำเนินการและรันโค้ดเพื่อปิดแอปหลังจากได้รับเหตุการณ์นี้ และส่วนนี้จะเหมือนกันสำหรับทั้ง UI เริ่มต้นและ UI ที่กำหนดเองของ Hive SDK.

การนำทาง URL เมื่อใช้ปุ่มมุมมองรายละเอียด (ไปที่ URL)

หากURL เริ่มต้นถูกตั้งค่าในคอนโซล Hive และนำทางไปยัง URLถูกเปิดใช้งาน นักพัฒนาจะต้องดำเนินการเพื่อเปลี่ยนเส้นทางผู้ใช้ไปยังที่อยู่ที่ตั้งเป็น URL เริ่มต้นเมื่อปุ่มดูรายละเอียดถูกกด ข้อมูลที่จำเป็นในการดำเนินการนี้อยู่ในวัตถุ AuthV4MaintenanceInfo

ตัวอย่างเช่น หากคุณตั้งค่า base URL คุณจะได้รับค่า (OPEN_URL) ในฟิลด์ action ของวัตถุ AuthV4MaintenanceInfo ที่บ่งชี้ถึงความจำเป็นในการนำทางไปยัง URL ที่เฉพาะเจาะจง หากไคลเอนต์แอปได้รับค่านี้ มันต้องดำเนินการโค้ดเพื่อนำผู้ใช้แอปไปยัง URL ใน url

การดำเนินการปิดป๊อปอัพเมื่อใช้ปุ่มปิด

หากใช้ ปุ่มปิด ในคอนโซล Hive นักพัฒนาต้องดำเนินการเขียนโค้ดที่ปิดป๊อปอัปโดยอัตโนมัติตามข้อมูลในวัตถุ AuthV4MaintenanceInfo เมื่อกดปุ่มปิด

ลำดับการเปิดเผย

หมายเหตุว่าป๊อปอัพจะไม่ปรากฏพร้อมกัน หากคุณได้ลงทะเบียนป๊อปอัพทั้งหมด (ข้อจำกัดประเทศ, การอัปเดต, หมายเหตุทั่วไป, การบำรุงรักษาเซิร์ฟเวอร์) ในคอนโซลแล้ว ลำดับที่ป๊อปอัพหมายเหตุจะแสดงคือดังต่อไปนี้

  1. ป๊อปอัพการจำกัดประเทศ
    1. บทบาท: แจ้งผู้ใช้ว่าการเข้าถึงถูกบล็อกหากพวกเขากำลังเชื่อมต่อจากประเทศที่กำหนด
    2. ขั้นตอนถัดไป: กระตุ้นให้ผู้ใช้ปิดแอป
  2. ป๊อปอัพการอัปเดต
    1. บทบาท: แจ้งผู้ใช้ให้ทำการอัปเดตหากพวกเขากำลังใช้เวอร์ชันเก่าของแอป (หากไม่ถูกจำกัดโดยประเทศ)
    2. ขั้นตอนถัดไป: ปิดแอปและนำผู้ใช้ไปยังตลาดแอปเพื่ออัปเดตเป็นเวอร์ชันล่าสุด
  3. ป๊อปอัพประกาศทั่วไป
    1. บทบาท: แสดงข้อมูลเกี่ยวกับการอัปเดตแอปและประกาศใดๆ หากแอปไม่ได้ถูกจำกัดโดยประเทศและเป็นเวอร์ชันล่าสุด
  4. ป๊อปอัพการบำรุงรักษาเซิร์ฟเวอร์
    1. บทบาท: แจ้งผู้ใช้เกี่ยวกับการบำรุงรักษาเซิร์ฟเวอร์ (หากไม่ถูกจำกัดโดยประเทศ แอปเป็นเวอร์ชันล่าสุด และมีการให้ประกาศทั่วไป)
    2. ขั้นตอนถัดไป: กระตุ้นให้ผู้ใช้ปิดแอป

ตัวอย่างที่ 1: เมื่อผู้ใช้เข้าถึงจากประเทศที่ถูกจำกัด

หากผู้ใช้เชื่อมต่อจากประเทศที่ถูกจำกัด จะมีเพียงป๊อปอัปการจำกัดประเทศที่จะแสดง และเกมจะออกจากระบบ หากป๊อปอัปการจำกัดประเทศยังไม่ได้ลงทะเบียนในคอนโซล ป๊อปอัปการจำกัดประเทศจะไม่แสดง และจะดำเนินการไปยังขั้นตอนการแสดงป๊อปอัปการอัปเดตตามที่แสดงในตัวอย่างที่ 2 ด้านล่าง

ตัวอย่าง 2: เมื่อผู้ใช้เข้าถึงจากประเทศที่อนุญาต

หากผู้ใช้เข้าถึงจากประเทศที่ได้รับอนุญาต จะไม่มีการแสดงป๊อปอัปข้อจำกัดประเทศ ป๊อปอัปที่แสดงหลังจากนั้นจะแตกต่างกันไปตามที่แสดงด้านล่าง ขึ้นอยู่กับว่าแอปเป็นเวอร์ชันล่าสุดหรือไม่

หากแอปเป็นเวอร์ชันเก่า (หากแอปไม่ได้รับการอัปเดต)

แสดงป๊อปอัปการอัปเดต ป๊อปอัปการอัปเดตจะกระตุ้นให้ผู้ใช้ทำการอัปเดตเกมเป็นเวอร์ชันล่าสุดจากตลาดหลังจากออกจากเกม

หากแอปเป็นเวอร์ชันล่าสุด (หากแอปได้รับการอัปเดต)

แสดงป๊อปอัพประกาศทั่วไปโดยไม่แสดงป๊อปอัพการอัปเดต หาก เซิร์ฟเวอร์อยู่ระหว่างการบำรุงรักษา จะมีการแสดงป๊อปอัพการบำรุงรักษาเซิร์ฟเวอร์