การบำรุงรักษาเซิร์ฟเวอร์
เมื่อให้บริการแอป จะมีสถานการณ์ที่คุณต้องแสดงป๊อปอัพการบำรุงรักษาเซิร์ฟเวอร์เนื่องจากการบำรุงรักษาเซิร์ฟเวอร์ตามปกติหรือฉุกเฉิน และต้องปิดแอปหรือเปลี่ยนเส้นทางผู้ใช้ไปยังเว็บไซต์อื่น ในลักษณะนี้ SDK ของ Hive จะให้ป๊อปอัพการแจ้งเตือนที่สามารถตอบสนองต่อสถานการณ์การบำรุงรักษาเซิร์ฟเวอร์ได้
ป๊อปอัพ | คำอธิบาย |
---|---|
การบำรุงรักษาเซิร์ฟเวอร์ | คุณสามารถตั้งสถานะการบำรุงรักษาสำหรับเซิร์ฟเวอร์เกมแต่ละตัว และแนะนำให้จัดเตรียมลิงก์ที่เกี่ยวข้องกับเกมในช่วงระยะเวลาการบำรุงรักษา |
วิธีการเปิดเผย¶
- ลงทะเบียน ป๊อปอัพประกาศการบำรุงรักษาเซิร์ฟเวอร์ ที่ต้องการในคอนโซล Hive
- ลงทะเบียน ID เซิร์ฟเวอร์ที่จะบำรุงรักษาใน ศูนย์แอปคอนโซล Hive
- เรียกใช้ Configuration.setServerId เพื่อ ป้อนข้อมูลเซิร์ฟเวอร์ที่จะบำรุงรักษา
- เมื่อเรียกใช้
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 และใช้งานมัน.
- การบำรุงรักษาปกติ
- ตั้งค่าเขตเวลาการบำรุงรักษาในคอนโซล Hive
- เรียกใช้
AuthV4.checkMaintenance
จากแอปไคลเอนต์ - แสดงป๊อปอัพเฉพาะในช่วงเวลาที่กำหนดตามผลการเรียก
- การบำรุงรักษาฉุกเฉิน
- ตั้งเวลาเป็น "เวลาปัจจุบัน" ในคอนโซล Hive
- บล็อกผู้ใช้ทั้งหมดไม่ให้เข้าถึงเซิร์ฟเวอร์แอป
- เรียกใช้
AuthV4.checkMaintenance
จากแอปไคลเอนต์ - แสดงป๊อปอัพตามเวลาปัจจุบันเมื่อผู้ใช้เชื่อมต่อใหม่กับแอปตามผลการเรียก
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 และใช้งานมัน.
- การบำรุงรักษาปกติ
- ตั้งค่าเขตเวลาการบำรุงรักษาในคอนโซล Hive
- เรียกใช้
AuthV4.checkMaintenance
จากแอปไคลเอนต์ - แสดงป๊อปอัพเฉพาะในช่วงเวลาที่กำหนดตามผลการเรียก
- การบำรุงรักษาฉุกเฉิน
- ตั้งค่าเวลาเป็น "เวลาปัจจุบัน" ในคอนโซล Hive
- ปิดกั้นผู้ใช้ทั้งหมดไม่ให้เข้าถึงเซิร์ฟเวอร์แอป
- เรียกใช้
AuthV4.checkMaintenance
จากแอปไคลเอนต์ - แสดงป๊อปอัพเมื่อผู้ใช้เชื่อมต่อใหม่กับแอปตามเวลาในปัจจุบันตามผลการเรียก
การดำเนินการออกจากแอปเมื่อใช้ปุ่มออกจากเกม¶
หากคุณใช้ปุ่ม 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: เมื่อผู้ใช้เข้าถึงจากประเทศที่ถูกจำกัด¶
หากผู้ใช้เชื่อมต่อจากประเทศที่ถูกจำกัด จะมีเพียงป๊อปอัปการจำกัดประเทศที่จะแสดง และเกมจะออกจากระบบ หากป๊อปอัปการจำกัดประเทศยังไม่ได้ลงทะเบียนในคอนโซล ป๊อปอัปการจำกัดประเทศจะไม่แสดง และจะดำเนินการไปยังขั้นตอนการแสดงป๊อปอัปการอัปเดตตามที่แสดงในตัวอย่างที่ 2 ด้านล่าง
ตัวอย่าง 2: เมื่อผู้ใช้เข้าถึงจากประเทศที่อนุญาต¶
หากผู้ใช้เข้าถึงจากประเทศที่ได้รับอนุญาต จะไม่มีการแสดงป๊อปอัปข้อจำกัดประเทศ ป๊อปอัปที่แสดงหลังจากนั้นจะแตกต่างกันไปตามที่แสดงด้านล่าง ขึ้นอยู่กับว่าแอปเป็นเวอร์ชันล่าสุดหรือไม่
หากแอปเป็นเวอร์ชันเก่า (หากแอปไม่ได้รับการอัปเดต)¶
แสดงป๊อปอัปการอัปเดต ป๊อปอัปการอัปเดตจะกระตุ้นให้ผู้ใช้ทำการอัปเดตเกมเป็นเวอร์ชันล่าสุดจากตลาดหลังจากออกจากเกม
หากแอปเป็นเวอร์ชันล่าสุด (หากแอปได้รับการอัปเดต)¶
แสดงป๊อปอัพประกาศทั่วไปโดยไม่แสดงป๊อปอัพการอัปเดต หาก เซิร์ฟเวอร์อยู่ระหว่างการบำรุงรักษา จะมีการแสดงป๊อปอัพการบำรุงรักษาเซิร์ฟเวอร์