HarmonyOS NEXT API说明
一、启动配置接口
<#Config地址#> 与 <#AppID#> 请于平台上获取,获取方式参见《如何查询AppID和Config地址?》。如有问题请联系技术支持。
启动配置类的接口通过链式调用方式随Bonree.withAppID("<#AppID#>").start(this.context.getApplicationContext());一同配置,需要在调用start函数之前withAppID之后进行相关配置,可同时配置多项,start函数后配置无效。
设置config地址
One平台或私有化部署用户启动时需要设置私有部署的config地址。
- 接口说明
withConfigAddress(configAddress: string): Bonree
| 参数 | 说明 | 参数限制 | 失败结果 |
|---|---|---|---|
| configAddress | 私有化config地址 | 字符串长度大于0,小于等于2083,否则接口调用失败 | 探针停止 |
- 元服务API
该接口已支持在元服务SDK中使用
- 示例
Bonree.withAppID("<#AppID#>")
.withConfigAddress("<#Config地址#>")
.start(this.context.getApplicationContext())
设置自定义APP版本
通过此方法设置了自定义设备App版本号,那么SDK将会上报此版本号,不再使用默认获取的版本号.
- 接口说明
withAppVersion(version: string): Bonree
| 参数 | 说明 | 参数限制 | 失败结果 |
|---|---|---|---|
| version | 自定义的版本号 | 字符串长度大于0,小于等于64,否则接口调用失败 | 当次设置无效 |
- 元服务API
该接口已支持在元服务SDK中使用
- 示例
Bonree.withAppID("<#AppID#>")
.withAppVersion("custom app version")
.start(this.context.getApplicationContext());
设置自定义应用环境
通过此方法设置应用环境字段
withAppEnvironment(environment: string): Bonree
| 参数 | 说明 | 参数限制 | 失败结果 |
|---|---|---|---|
| environment | 应用环境字符 | 字符串长度大于0,小于等于256,超过截取,不包含特殊字符(允许存在空格(不允许纯空格)、字母、中文、数字、-、_、.、@、/、:、*、#、!) | 当次设置无效 |
- 元服务API
该接口已支持在元服务SDK中使用
- 示例
Bonree.withAppID("<#AppID#>")
.withAppEnvironment("PROD")
.start(this.context.getApplicationContext());
使用自定义冷启动结束时间
是否使用自定义冷启动结束时间
- 接口说明
withUseCustomLaunch(used: boolean): Bonree
| 参数 | 说明 |
|---|---|
| used | true 使用自定义结束 false 不使用 |
- 元服务API
该接口已支持在元服务SDK中使用
- 示例
Bonree.withAppID("<#AppID#>")
.withUseCustomLaunch(true)
.start(this.context.getApplicationContext());
设置SDK自身请求Header
本接口用于设置对于SDK自身发起的网络请求中添加自定义请求头
- 接口说明
withSDKRequestHeaders(headers: Map<string, string>): Bonree
| 参数 | 说明 | 失败结果 |
|---|---|---|
| headers | 要设置的请求头键值对(最多设置64个,key长度限制256个字符,value长度限制512个字符) | key,value长度限制则单条数据无效 |
- 元服务API
该接口已支持在元服务SDK中使用
- 示例
const headers:Map<string,string> = new Map();
headers.set("headerKey1","headerValue1");
headers.set("headerKey2","headerValue2");
headers.set("headerKey3","headerValue3");
Bonree.withAppID("<#AppID#>")
.withSDKRequestHeaders(headers)
.start(this.context.getApplicationContext());
开启加密并设置加密信息
本接口用于设置是否使用国密加密SDK自身请求。
加密功能当前仅支持One平台。使用该功能前请务必先与技术支持或实施沟通获取加密Key,保证与平台配置一致,否则会导致SDK数据请求异常。
withEnableGMSM4Encrypt(secretKey: Uint8Array, identifier: string):Bonree
| 参数 | 说明 | 参数限制 | 失败结果 |
|---|---|---|---|
| secretKey | 加密密钥 | 必填,byte[] 类型,key长度必须完全等于16个字节 | 加密功能失效 |
| identifier | 密钥标识符 | 必填,字符串不可为空或空串。 字符串小于等于256,且不包含特殊字符(仅支持字母数字下划线_连接符-) | 加密功能失效 |
- 元服务API
该接口已支持在元服务SDK中使用
- 示例
let secretKey = new Uint8Array([1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16]);
//assert secretKey.length == 16;务必保证字符实际长度为16字节,请勿使用< > & ' " %特殊字符
let identifier :string ="v30";
Bonree.withAppID("<#AppID#>")
.withEnableGMSM4Encrypt(secretKey,identifier)
.start(this.context.getApplicationContext());
或
let secretKeyStr="1234567890123456"
let textEncoder = new util.TextEncoder('utf-8');
let secretKey = textEncoder.encodeInto(secretKeyStr);
//assert secretKey.length == 16;务必保证字符实际长度为16字节,请勿使用< > & ' " %特殊字符
let identifier :string ="v30";
Bonree.withAppID("<#AppID#>")
.withEnableGMSM4Encrypt(secretKey,identifier)
.start(this.context.getApplicationContext());
设置用户渠道ID
区分应用发布的渠道, 渠道信息会在平台的性能数据中做展示
- 接口说明
withChannelID(channelID: string): Bonree
| 参数 | 说明 | 参数限制 | 失败结果 |
|---|---|---|---|
| channelID | 自定义的渠道号 | 符串长度大于0,小于等于256,否则接口调用失败 | 当次设置无效 |
- 元服务API
该接口已支持在元服务SDK中使用
- 示例
Bonree.withAppID("<#AppID#>")
.withChannelID("channelID")
.start(this.context.getApplicationContext());
开启会话回放上报
在会话回放功能打开的前提下,SDK默认在产生问题时才会上报回放数据,若客户端主动调用该接口会立刻开启会话回放的持续上报能力。
static startSessionReplayUpload();
- 示例
ItemButton({ btnName: "浏览" }).onClick(() => {
Bonree.startSessionReplayUpload();
}).width('20%')
二、数据获取接口
获取设备ID
如果在SDK启动时设置了 withDeviceID 接口,那么会返回自定义的ID
- 接口说明
static getDeviceID(): string
- 元服务API
该接口已支持在元服务SDK中使用
- 示例
const deviceID = Bonree.getDeviceID();
console.log("BRSDK: "+deviceID);
获取SDK当前版本
获取当前SDK的版本
- 接口说明
static getSdkVersion(): string
- 元服务API
该接口已支持在元服务SDK中使用
- 示例
const sdkVersion = Bonree.getSdkVersion();
console.log("BRSDK: "+sdkVersion);
三、自定义信息设置接口
自定义用户信息
BonreeSDK支持设置与用户相关的信息,从而完成性能数据与实际用户相关联的需求场景。
设置用户信息有两种方式:
- 设置用户ID,以字符串形式给用户做标识
setUserID(userID: string);
| 参数 | 说明 | 参数限制 | 失败结果 |
|---|---|---|---|
| userID | 以字符串形式给用户做标识 | 字符串可为空或空串。 字符串小于等于256,且不包含特殊字符(只允许数字、字母、中文、冒号、空格、斜杠、下划线、连字符、英文句号、星号、叹号、@、#,空或空串无效),否则接口调用失败 | 当次设置无效 |
- 元服务API
该接口已支持在元服务SDK中使用
- 示例
Bonree.setUserID("18988888888");
设置用户附加信息
- 设置用户更加详细的附加信息。
static setUserExtraInfo(extraInfo: Map<string, Object>);
| 参数 | 说明 | 参数限制 | 失败结果 |
|---|---|---|---|
| extraInfo | 用户附加信息 | Map中kv最多64对 超过则保留其中64个,key长度小于256,超过则该key无效,且不包含特殊字符(只允许数字、字母、冒号、空格、斜杠、下划线、连字符、英文句号、@,空或空串无效);value小于512,超过则截取 | 当次设置无效 |
- 元服务API
该接口已支持在元服务SDK中使用
- 示例
const userInfo = new Map<string, Object>();
userInfo.set("phoneNumber", "18988888888");
userInfo.set("clientID", "harmony device id");
userInfo.set("type", "vip");
Bonree.setUserExtraInfo(userInfo);
追加用户附加信息
- 追加用户附加信息
static addUserExtraInfo(key: string, value: Object);
| 参数 | 说明 | 参数限制 | 失败结果 |
|---|---|---|---|
| key | 追加的key | key长度小于256,超过则该key无效,且不包含特殊字符(只允许数字、字母、冒号、空格、斜杠、下划线、连字符、英文句号、@,空或空串无效); | 当次设置无效 |
| value | key对应的value | value小于512,超过则截取 | 当次设置无效 |
- 元服务API
该接口已支持在元服务SDK中使用
- 示例
Bonree.addUserExtraInfo("age","18");
移除用户附加信息
- 移除用户附加信息
static removeUserExtraInfo(key: string);
| 参数 | 说明 | 参数限制 | 失败结果 |
|---|---|---|---|
| key | 追加的key | key长度小于256,超过则该key无效,且不包含特殊字符(只允许数字、字母、冒号、空格、斜杠、下划线、连字符、英文句号、@,空或空串无效); | 当次设置无效 |
- 元服务API
该接口已支持在元服务SDK中使用
- 示例
Bonree.removeUserExtraInfo("age");
累加用户数值信息
- 累加用户数值信息
static increaseUserExtraInfo(key: string, value: number);
| 参数 | 说明 | 参数限制 | 失败结果 |
|---|---|---|---|
| key | 追加的key | key长度小于256,超过则该key无效,且不包含特殊字符(只允许数字、字母、冒号、空格、斜杠、下划线、连字符、英文句号、@,空或空串无效); | 当次设置无效 |
| value | key对应的value | value 仅支持Number类型 | 当次设置无效 |
- 元服务API
该接口已支持在元服务SDK中使用
- 示例
Bonree.increaseUserExtraInfo("number",1);
添加事件的公共属性
- 添加事件的公共属性
static addEventAttributes(attributes: Map<string, Object>, isSaveLocal: boolean);
| 参数 | 说明 | 参数限制 | 失败结果 |
|---|---|---|---|
| attributes | 要添加的信息,相同的key会覆盖之前的设置 | map中kv最多64对 超过则保留其中64个;key长度小于256,超过则该key无效,且不包含特殊字符(只允许数字、字母、冒号、空格、斜杠、下划线、连字符、英文句号、@,空或空串无效); | 当次设置无效 |
| isSaveLocal | 是否持久化本地,true:公共属性会持久化到本地,下次打开应用还会带上公共属性。false:仅本次使用期间生效 | 当次设置无效 |
- 元服务API
该接口已支持在元服务SDK中使用
- 示例
const attributes = new Map<string, Object>();
attributes.set("onclick", "1");
attributes.set("page", "1");
attributes.set("type", "vip");
Bonree.addEventAttributes(attributes, true);
添加单条事件的公共属性
- 添加单条事件的公共属性
static addEventAttribute(key: string, value: Object, isSaveLocal: boolean);
| 参数 | 说明 | 参数限制 | 失败结果 |
|---|---|---|---|
| key | 要添加信息的key | key长度小于等于256,超过则该key无效,且不包含特殊字符(只允许数字、字母、冒号、空格、斜杠、下划线、连字符、英文句号、@,空或空串无效); | 当次设置无效 |
| value | 要添加信息的value | value长度小于等于512,超过则截取 | 当次 |
| isSaveLocal | 是否持久化本地,true:公共属性会持久化到本地,下次打开应用还会带上公共属性。false:仅本次使用期间生效 | 当次设置无效 |
- 元服务API
该接口已支持在元服务SDK中使用
- 示例
Bonree.addEventAttribute("onclick",1,true);
移除事件公共属性
- 移除事件公共属性
static removeEventAttribute(keys: string[])
| 参数 | 说明 | 参数限制 | 失败结果 |
|---|---|---|---|
| keys | 要删除key的数组 | key长度小于等于256,超过则该key无效,且不包含特殊字符(只允许数字、字母、冒号、空格、斜杠、下划线、连字符、英文句号、@,空或空串无效); | 当次设置无效 |
- 元服务API
该接口已支持在元服务SDK中使用
- 示例
const removeKeys=["name","age"];
Bonree.removeEventAttribute(removeKeys);