跳轉至

SDK 初始化

Hive SDK 的初始化意味着将大多数 SDK 功能处于初始化状态,即准备好使用。当实现 SDK 代码时,您必须首先执行初始化,然后调用实现 Hive 功能的方法。

Note

完成基本设置后,您需要初始化Hive SDK。

Note

与其他Hive SDK功能不同,计费需要单独初始化

初始化方法

要初始化 Hive SDK,请调用 AuthV4.setup。建议在应用程序运行并显示企业标志 (CI) 之后执行初始化。 如果作为回调结果收到的 result.isSuccessTrue,则初始化成功。以下是示例代码。

API 參考: AuthV4.setup

using hive;

    // 請求 Hive SDK 初始化
    AuthV4.setup((result, isAutoSignIn, did, providerTypeList) => {
        if (result.isSuccess()) {
            // 初始化成功。根據是否啟用自動登錄來處理登錄。
        } else if (result.needExit()) {
            // TODO: 實現應用程序的終止
            // Cocos2d-x 引擎的用戶
            // 例如) exit(0);
            // Unreal 引擎用戶
            // 示例) UKismetSystemLibrary::QuitGame(GetWorld(), nullptr, EQuitPreference::Quit, false);    
        } else {
            // 初始化失敗 
        }
    });

API 參考: AuthV4::setup

#include <HIVE_SDK_Plugin/HIVE_CPP.h>

    // 請求 Hive SDK 初始化
    AuthV4::setup([=](ResultAPI const & result, bool isAutoSignIn, std::string did, std::vector<ProviderType> const & providerTypeList) {
        if (result.isSuccess()) {
            // 初始化成功。根據是否啟用自動登錄來處理登錄。
        } else if (result.needExit()) {
            // TODO: 實現應用程序的終止
            // Cocos2d-x 引擎的用戶
            // 例如) exit(0);
            // Unreal 引擎用戶
            // 例) UKismetSystemLibrary::QuitGame(GetWorld(), nullptr, EQuitPreference::Quit, false);    
        } else {
            // 初始化失敗 
        }
    });

API 參考: com.hive.AuthV4.setup

import com.hive.AuthV4;

    // 請求 Hive SDK 初始化    
    AuthV4.setup(object: AuthV4.AuthV4SetupListener{    
        override fun onAuthV4Setup(result: ResultAPI, isAutoSignIn: Boolean, did: String?, providerTypeList: ArrayList<AuthV4.ProviderType>?) {        if (result.isSuccess) {    
                // 初始化成功。根據是否啟用自動登錄來處理登錄。    
            } else if (result.needExit()) {    
                // TODO: 實現應用程序的終止    
                // ex) exitProcess(0)    
            } else {    
                // 初始化失敗 
            } 
        } 
    })

API 參考: com.hive.AuthV4.setup

import com.hive.AuthV4;  

    // 請求 Hive SDK 初始化    
    AuthV4.setup(new AuthV4.AuthV4SetupListener() {    
        @Override    
        public void onAuthV4Setup(ResultAPI result, boolean isAutoSignIn, String did, ArrayList<AuthV4.ProviderType> providerTypeList) {    
            if (result.isSuccess()) {    
                // 初始化成功。根據是否啟用自動登錄來處理登錄。    
            } else if (result.needExit()) {    
                // TODO: 實現應用程序的終止    
                // ex) System.exit(0);    
            } else {    
                // 初始化失敗 
            } 
        } 
    });

API 參考: HIVEAuthV4:setup

import HIVEService

    // 請求 Hive SDK 初始化
    AuthV4Interface.setup { (result, isAutoSignIn, did, providerTypeList) in    
        if result.isSuccess() {    
            // 初始化成功。根據自動登錄是否啟用來處理登錄。    
        } else if result.needExit() {    
            // TODO: 實現應用程序的終止    
            // 例) exit(0)    
        } else {    
            // 初始化失敗    
        }    
    }

API 參考: HIVEAuthV4:setup

#import <HIVEService/HIVEService-Swift.h>

    // 請求 Hive SDK 初始化    
    [HIVEAuthV4 setup:^(HIVEResultAPI *result, BOOL isAutoSignIn, NSString *did, NSArray<NSNumber *> *providerTypeList) {    
        if (result.isSuccess) {    
            // 初始化成功。根據是否啟用自動登錄處理登錄。    
        } else if (result.needExit) {    
            // TODO: 實現應用程序的終止    
            // ex) exit(0);    
        } else {    
            // 初始化失敗    
        }    
    }];
#include "HiveAuthV4.h"

    FHiveAuthV4::Setup(FHiveAuthV4OnSetupDelegate::CreateLambda([this](const FHiveResultAPI& Result,
    bool IsAutoSignIn,
    const FString& Did,
    const TArray<EHiveProviderType>& ProviderTypeArray) 
    {
            if (Result.IsSuccess()) {
                    // 初始化成功。根据是否可以自动登录处理登录。
            } else if (Result.NeedExit()) {
                    // TODO: 实现应用退出功能
                    // e.g.) UKismetSystemLibrary::QuitGame(GetWorld(), nullptr, EQuitPreference::Quit, false);
            } else {
                    // 初始化失败
            }
    }));


結果回調包含以下信息。開發者應該儲存以下信息並在必要時使用。

欄位名稱 描述 範例
isAutoSignIn 是否可以自動登入 true
did 在應用程式安裝時創建的應用程式識別碼,用於識別相同類型的應用程式。 123456789
providerTypeList 當前應用程式提供的 IdP 列表。在配置 顯式登入自定義IdP 連接狀態資訊 時是 必需 的。 ProviderType.FACEBOOK
ProviderType.HIVE
Note

Hive 控制台 > 應用中心 > 專案管理 當專案狀態為 服務結束 時,執行 AuthV4.setup 將返回錯誤代碼。

初始化結果

SDK 初始化執行以下操作。

  • 初始化身份驗證、促銷、通知和行銷歸因
  • 自動顯示在 Hive 控制台中註冊的條款更新彈出窗口


下方的圖片顯示了當執行 AuthV4.setup 時,SDK 內部執行的工作流程。

Note

iOS 應用程式追蹤透明度彈出窗口在顯示條款同意彈出窗口後顯示,並且用戶完成條款同意。