更新时间:2024-07-30 GMT+08:00

初始化

Init

接口描述

用于启动并且初始化SDK。

注意事项

  1. 调用该接口之前请先修改HwmSdk文件夹下HwmSdk.exe文件的名称。
  2. 该接口用于启动并初始化SDK,在调用其他接口之前必须先调用该接口并等待初始化回调结果。
  3. 每次调用初始化接口会重新启动SDK,之前所有设置与操作将不复存在。
  4. 该接口为异步接口,返回值只代表接口是否调用成功,实际业务处理结果在对应的回调函数中返回。

方法定义

1
HWM_SDK_AGENT_API hwmsdk::HwmErrCode Init(HwmInitInfo *initInfo);

回调函数

1
virtual void OnInitResult(hwmsdk::HwmErrCode ret, const char* reason, HwmSdkInfo *sdkInfo) {};

参数描述

表1 结构体HwmInitInfo 参数说明

参数

是否必须

类型

描述

exePath

x64平台是必须,win32平台不用传

char[]

SDK启动路径,SDK压缩包中HwmSdk文件夹下的exe文件所在的绝对路径。使用前请将SDK压缩包中HwmSdk文件夹下HwmSdk.exe文件名修改为期望的名称。如果HwmSdk文件夹的路径为:D:\MyApp\SDK\HwmSdk\,exe文件的名称为MySdk.exe,则exePath=D:\MyApp\SDK\HwmSdk\MySdk.exe。

注:需要UTF8编码。

logPath

char[]

SDK日志路径,如果不设置,则使用默认路径。

注:需要UTF8编码。

userDataPath

char[]

SDK用户数据路径,如果不设置,则使用默认路径。

注:需要UTF8编码。

appId

char[]

App ID。App ID的申请,请参考《开发指南》的"App ID的申请"章节。

notify

HwmAgentNotify

通知对象。继承于基类HwmAgentNotify的类的对象。

callback

HwmAgentCallback

接口回调对象。继承于基类HwmAgentCallback的类的对象。

authType

HwmAuthType

鉴权方式。

siteType

HwmSiteType

站点类型。默认使用国内站点(值置0)。

logKeepDays

unsigned int

配置项-日志保存天数,输入有效范围为3-30,默认值0。0为不按天数删除日志。

注意:输入1和2会转换为3,大于30的值会被转换为30。

preferredCamera

char[]

优选摄像头列表,填写后,初次打开摄像头按列表中的顺序选择第一个可用的摄像头。可以不填,不填按照默认顺序打开可用的摄像头。

isSupportMultiAppLogin

bool

是否支持同终端多应用登录。默认关闭。

表2 枚举HwmAuthType说明

枚举值

描述

HWM_AUTH_TYPE_ACCOUNT_AND_PASSWORD

账号密码鉴权方式。

HWM_AUTH_TYPE_APPID

App ID鉴权方式。

表3 枚举HwmSiteType说明

枚举值

描述

SITE_TYPE_CHINA

国内站点

SITE_TYPE_AP

亚太站点

表4 结构体HwmSdkInfo参数说明

参数

类型

描述

version

char[]

SDK版本号

推荐使用App ID鉴权方式。App ID的申请,请参考《开发指南》中的“App ID鉴权介绍”章节。

返回值

表5 返回值

类型

描述

HwmErrCode

成功返回0,其他值表示失败。失败返回值见错误码参考

示例代码
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
//创建消息通知处理对象
static demoNotifyProc *notifyObj = new demoNotifyProc();
//创建回调函数处理对象
static demoCallbackProc *callbackObj = new demoCallbackProc();

/**
*初始化接口,拉起应用
*/
int CdemoBeforeLoginDlg::Init()
{
    //组装入参结构体
    hwmsdkagent::HwmInitInfo initParam;
    memset(&initParam, 0, sizeof(HwmInitInfo));
 
    //(win32平台不需要)x64平台需要设置sdk路径,即exe文件路径,对exe文件重命名后,需要对应修改
    //将路径转换为UTF8格式后拷贝给initParam,此处省略转换代码
    strcpy_s(initParam.exePath, HWM_MAX_FILE_PATH_LEN, GetHwmSdkExePath().c_str());
    //指定日志路径,将路径转换为UTF8格式后拷贝给initParam,此处省略转换代码
    strcpy_s(initParam.logPath, HWM_MAX_FILE_PATH_LEN, GetLogPath().c_str());
    //指定数据路径,将路径转换为UTF8格式后拷贝给initParam,此处省略转换代码
    strcpy_s(initParam.userDataPath, HWM_MAX_FILE_PATH_LEN, GetUserDataPath().c_str());

    //传入申请到的企业AppId
    strncpy_s(initParam.appId, GetAppId.c_str(), HWM_MAX_APPID_LEN);
    initParam.notify = notifyObj;
    initParam.callback = callbackObj;
    initParam.authType = hwmsdkagent::HWM_AUTH_TYPE_APPID;
    int ret = hwmsdkagent::Init(&initParam);
 
    return ret;
}
  • 典型场景和接口参考中的示例代码仅作为示例用的伪代码,不能直接使用。
  • 消息通知处理类demoNotifyProc和回调函数处理类demoCallbackProc的定义,请参考SDK包中的Demo代码。