跳转至

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);
            // 虚幻引擎用户
            // 示例) 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 Reference: 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: 实现应用程序的终止    
            // 例如) 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 应用跟踪透明度弹出窗口在用户完成条款协议后显示条款协议弹出窗口后显示。