API功能
一、自定义功能接口
在Web页面中接入了JS检测探针,或者加载页面的应用App内接入了BonreeSDK,均可以在页面内使用本文档中所述的自定义接口,使用方式一致。如:
window.bonreeJsBridge.setUserID('1234');
注意:移动端App使用JS行为数据监控功能需要开启WebView功能。
JS接口的参数限制与原生基本一致。JS特有接口参数限制本文档单独标注。
设置用户ID
// 设置会员ID
function setUserID(ID);
- 接口说明
参数名 | 类型 | 注释 | 参数限制 |
---|---|---|---|
ID | String | 用户ID | 字符串可为空或空串。 字符串小于等于256,且不包含特殊字符(仅支持字母数字下划线_连接符-),否则接口调用失败。 |
示例
在需要设置会员用户id时添加如下代码:
<script> function myclick() { window.bonreeJsBridge&&window.bonreeJsBridge.setUserID('1234'); } </script>
设置用户附加信息
function setExtraInfo(extraInfo);
- 接口说明
参数名 | 类型 | 注释 | 参数限制 |
---|---|---|---|
extraInfo | String | 用户附加信息。key-value形式的Json字符串。 | Json字符串可为空。 转JSON后长度在7000字符以内,否则接口调用失败。 |
示例
某html页面在进入某一个页面时设置自定义信息:
<script> function myclick() { var json = '{ "js1": "jsvalue1", "js2": "jsvalue1", "js3":"jsvalue3" }'; window.bonreeJsBridge&&window.bonreeJsBridge.setExtraInfo(json); } </script>
自定义异常
function setCustomException(exceptionType, causedBy, errorDump);
- 接口说明
参数名 | 类型 | 注释 | 参数限制 |
---|---|---|---|
exceptionType | String | 异常类型。必传参数,空或空串接口调用无效。 | 字符串长度大于0,小于等于256,否则接口调用失败。 |
causedBy | String | 异常原因 | 字符串可为空或空串。 字符串小于等于512,超长截取。 |
errorDump | String | 异常堆栈 | 超出10000字符时会被切割 |
示例
<script> function customException() { window.bonreeJsBridge&&window.bonreeJsBridge.setCustomException("Custom exception type", "Caused by customer.", "Custom error dump 0\nCustom error dump 1"); } </script>
自定义视图
// 自定义视图开始记录
function setCustomPageStart(pageName, pageAlias);
// 自定义视图结束记录
function setCustomPageEnd(pageName, pageAlias);
- 接口说明
参数名 | 类型 | 注释 | 参数限制 |
---|---|---|---|
pageName | String | 页面名称。必传参数,空或空串接口调用无效。 | 字符串长度大于0,小于等于256,否则接口调用失败。 |
pageAlias | String | 页面别名 | 字符串可为空或空串。 字符串小于等于256,超长截取。 |
示例
监测关于html界面,其对应页面名称为About.html:
<script> function myclick() { window.bonreeJsBridge&&window.bonreeJsBridge.setCustomPageStart("001", "About"); window.bonreeJsBridge&&window.bonreeJsBridge.setCustomPageEnd("001", "About"); } </script>
注意:
setCustomPageStart
和setCustomPageEnd
需成对调用。
自定义事件(完整版)
分别调用开始与结束接口并传入相应参数,可完成自定义事件数据与事件持续时间的统计功能。
/// 自定义事件开始
function setCustomEventStart(eventId, eventName, eventLabel, eventParam, info)
/// 自定义事件结束
function setCustomEventEnd(eventId, eventName, eventLabel, eventParam, info)
- 接口说明
参数名 | 类型 | 注释 | 参数限制 |
---|---|---|---|
eventId | String | 事件ID。必传参数,空或空串接口调用无效。 | 字符串长度大于0,小于等于256,否则接口调用失败。 |
eventName | String | 事件名称 | 字符串可为空或空串。 字符串小于等于256,超长截取。 |
eventLabel | String | 事件标签,可选参数。 | 字符串可为空或空串 字符串小于等于256,超长截取。 |
eventParam | String | 附加信息,可选参数。 | 字符串可为空或空串 字符串小于等于7000,超长截取。 |
info | Object | 事件详情,可选参数。 | 转JSON后长度在7000字符以内,否则接口调用失败。 |
示例
分别调用开始与结束接口并传入相应参数,检测某html页面内的某button点击事件持续时间。
<script> function myclick() { window.bonreeJsBridge&&window.bonreeJsBridge.setCustomEventStart("1111", "button click","点击","",{"key":"value"}); .... window.bonreeJsBridge&&window.bonreeJsBridge.setCustomEventEnd("1111", "button click","点击","",{"key":"value"}); } </script>
注意:1.方法需成对调用,自定义事件开始与结束的匹配使用eventID唯一匹配,使用时请确保未结束事件ID的唯一性。
自定义事件(精简版)
function setCustomEvent(eventId, eventName, eventParam, info);
- 接口说明
参数名 | 类型 | 注释 | 参数限制 |
---|---|---|---|
eventId | String | 事件ID。必传参数,空或空串接口调用无效。 | 字符串长度大于0,小于等于256,否则接口调用失败。 |
eventName | String | 事件名称 | 字符串可为空或空串。 字符串小于等于256,超长截取。 |
eventParam | String | 附加信息,可选参数。 | 字符串可为空或空串 字符串小于等于7000,超长截取。 |
info | Object | 事件详情,可选参数。 | 转JSON后长度在7000字符以内,否则接口调用失败。 |
示例
检测某html页面内的某button点击情况:
<script> function myclick() { window.bonreeJsBridge&&window.bonreeJsBridge.setCustomEvent("1111", "button click","",{"key":"value"}); } </script>
自定义日志
function setCustomLog(logInfo);
- 接口说明
参数名 | 类型 | 注释 | 参数限制 |
---|---|---|---|
logInfo | String | 日志信息。必传参数,空或空串接口调用无效。 | 字符串长度大于0,否则接口调用失败。 字符串小于等于10000,超长截取。 |
示例
检测某JS函数的执行日志:
<script> function myclick() { window.bonreeJsBridge&&window.bonreeJsBridge.setCustomLog("2020-01-01 08:30:00 Print myclick()"); } </script>
自定义指标
function setCustomMetric(metricName, metricValue);
- 接口说明
参数名 | 类型 | 注释 | 参数限制 |
---|---|---|---|
metricName | String | 指标名称。必传参数,空或空串接口调用无效。 | 字符串长度大于0,小于等于256,否则接口调用失败。 |
metricValue | String | 指标数值。必传参数,指标为空或非数值接口调用无效。 | - |
示例
检测JS函数内某测试指标:
<script> function myclick() { window.bonreeJsBridge&&window.bonreeJsBridge.setCustomMetric("测试指标01", "1"); } </script>
自定义H5性能数据
function setCustomH5performanceData(dataInfo);
- 接口说明
参数名 | 值类型 | 注释 | 传参限制 | 值说明 |
---|---|---|---|---|
pvid | String | 页面唯一标识 | 非空校验,类型校验,长度校验<=2083 | UUID(数据异常默认生成新ID) |
url | String | document.url | 非空校验,类型校验,长度校验<=2083 | -- |
imd | Number | main document | 非空校验,类型校验 | 1-主文档;0-非主文档 |
ns | Number | navigation start (ms) | 非空校验,类型校验 | [时间戳] 无此指标数据传值 0 |
ues | Number | unload event start (ms) | 非空校验,类型校验 | [相对值] 无此指标数据传值 -1 |
uee | Number | unload event end (ms) | 非空校验,类型校验 | [相对值] 无此指标数据传值 -1 |
rds | Number | redirect start (ms) | 非空校验,类型校验 | [相对值] 无此指标数据传值 -1 |
rde | Number | redirec end (ms) | 非空校验,类型校验 | [相对值] 无此指标数据传值 -1 |
fs | Number | fetch start (ms) | 非空校验,类型校验 | [相对值] 无此指标数据传值 0 |
dls | Number | domain lookup start (ms) | 非空校验,类型校验 | [相对值] 无此指标数据传值 -1 |
dle | Number | domain lookup end (ms) | 非空校验,类型校验 | [相对值] 无此指标数据传值 -1 |
cs | Number | connect start (ms) | 非空校验,类型校验 | [相对值] 无此指标数据传值 -1 |
scs | Number | secure connection start (ms) | 非空校验,类型校验 | [相对值] 无此指标数据传值 -1 |
ce | Number | connect end (ms) | 非空校验,类型校验 | [相对值] 无此指标数据传值 -1 |
reqs | Number | request start (ms) | 非空校验,类型校验 | [相对值] 无此指标数据传值 0 |
rsps | Number | response start (ms) | 非空校验,类型校验 | [相对值] 无此指标数据传值 0 |
rspe | Number | response end (ms) | 非空校验,类型校验 | [相对值] 无此指标数据传值 0 |
dl | Number | dom loading (ms) | 非空校验,类型校验 | [相对值] 无此指标数据传值 0 |
di | Number | dom interactive (ms) | 非空校验,类型校验 | [相对值] 无此指标数据传值 0 |
dcles | Number | dom content loaded event start (ms) | 非空校验,类型校验 | [相对值] 无此指标数据传值 0 |
dclee | Number | dom content loaded event end (ms) | 非空校验,类型校验 | [相对值] 无此指标数据传值 0 |
dc | Number | dom complete (ms) | 非空校验,类型校验 | [相对值] 无此指标数据传值 0 |
les | Number | load event start (ms) | 非空校验,类型校验 | [相对值] 无此指标数据传值 0 |
lee | Number | load event end (ms) | 非空校验,类型校验 | [相对值] 无此指标数据传值 -1 |
fp | Number | first-paint (ms) | 非空校验,类型校验 | [相对值] 无此指标数据传值 -1 |
fcp | Number | first-contentful-paint (ms) | 非空校验,类型校验 | [相对值] 无此指标数据传值 -1 |
lcp | Number | largest-contentful-paint (ms) | 非空校验,类型校验 | [相对值] 无此指标数据传值 -1 |
标识相对值的时间指标指该指标与navigation start的相对时间。
示例
function fun() { var dataInfo = { "pvid":"00000000-0000-0000-0000-000000000000", "url":"http://localhost/index.html", "imd":1, "ns":1619061461208, "ues":-1, "uee":-1, "rds":-1, "rde":-1, "fs":3, "dls":5, "dle":6, "cs":7, "scs":9, "ce":12, "reqs":13, "rsps":15, "rspe":19, "dl":20, "di":22, "dcles":23, "dclee":25, "dc":26, "les":26, "lee":35, "fp":-1, "fcp":-1, "lcp":-1 }; window.bonreeJsBridge&&window.bonreeJsBridge.setCustomH5performanceData(JSON.stringify(dataInfo)); }
自定义路由切换数据
function setCustomRouteChangeData(dataInfo);
- 接口说明
参数名 | 值类型 | 注释 | 传参限制 | 值说明 |
---|---|---|---|---|
tu | String | 目标路由(URL) | 非空校验,长度校验<=2083 | -- |
fu | String | 来源路由(URL) | 非空校验,长度校验<=2083 | -- |
d | Number | 切换耗时 (ms) | 非空校验,类型校验 | -- |
sta | Number | 切换状态 | 非空校验,类型校验 | 0-正常;2-异常 |
al | String | 路由名称(别名) | 长度校验 >256 字段值丢弃 | -- |
pt | String | 路由地址 | 非空校验,长度校验<=256 | -- |
rt | String | document.url(去锚点) | 非空校验,长度校验<=2083 | -- |
pu | String | document.url | 非空校验,长度校验<=2083 | -- |
fw | String | 单页面框架名称 | 非空校验,长度校验<=256 | Vue,Angular,React 任选其一 |
示例
function fun() { var dataInfo = { "tu":"http://localhost/index#/home", "fu":"http://localhost/index#/", "d":2, "sta":0, "al":"", "pt":"/home", "rt":"http://localhost/index/home", "pu":"http://localhost/index#/home", "fw":"Vue" }; window.bonreeJsBridge&&window.bonreeJsBridge.setCustomRouteChangeData(dataInfo); }
自定义操作结束
调用该接口,结束根据调用栈匹配到的操作。该方法必须直接或间接地由操作相关的方法调用,否则调用无效。
function recordCustomActionEnd()
- 使用场景
以登录场景为例,
- 点击登录按钮,触发
onClickHandle
方法; onClickHandle
方法中,调用了login
方法和其他的一些方法;
如果我们要关注触发登录按钮到调用login
方法结束时的耗时等数据,不关注login
方法后等其他方法执行的数据,那么我们可以在 login
方法后调用自定义操作结束接口。
示例
function onClickHandle (){ ... login() window.bonreeJsBridge&&window.bonreeJsBridge.recordCustomActionEnd() ... // 其他方法或请求 }
二、配置接口
开启加密并设置加密信息
开启加密后,可以对探针自身发起的请求进行加密。
加密功能当前仅支持One平台。使用该功能前请务必先与技术支持或实施沟通获取加密Key,保证与平台配置一致,否则会导致SDK数据请求异常。
- 配置参数说明
参数名 | 类型 | 注释 |
---|---|---|
sm4Config.key | String | 加密的秘钥(长度必须为16个字节,请勿使用< > & ' " %特殊字符) |
sm4Config.identifier | String | 对应key的唯一标识(长度限制1-256个字符,仅支持字母数字下划线_和横线-) |
- 配置方式一
在嵌码配置中配置sm4配置:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script id="BonreeAgent" src="BonreeSDK_JS.min.js" data=
'{
"appId":"49f6497c15a64291b9edf1a441413fb5",
"uploadAddrHttp":"http://demtest.bonree.com/onerum_dev_upload",
"uploadAddrHttps":"https://demtest.bonree.com/onerum_dev_upload",
"sm4Config":{
"key": "JeF38U9wT9wlMfs2",
"identifier":"12323"
}
}'>
</script>
</head>
<body>
</body>
</html>
- 配置方式二
在嵌入后调用接口BonreeStart配置:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script id="BonreeAgent" src="BonreeSDK_JS.min.js" data=
'{
"appId":"49f6497c15a64291b9edf1a441413fb5",
"uploadAddrHttp":"http://demtest.bonree.com/onerum_dev_upload",
"uploadAddrHttps":"https://demtest.bonree.com/onerum_dev_upload",
}'>
</script>
<script type="text/javascript">
BonreeAgent.BonreeStart(
{
"sm4Config":{
"key": "JeF38U9wT9wlMfs2",
"identifier":"12323"
}
}
)
</script>
</head>
<body>
</body>
</html>