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>
    

注意:setCustomPageStartsetCustomPageEnd需成对调用。

自定义事件(完整版)

分别调用开始与结束接口并传入相应参数,可完成自定义事件数据与事件持续时间的统计功能。

/// 自定义事件开始
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()
  • 使用场景

以登录场景为例,

  1. 点击登录按钮,触发 onClickHandle 方法;
  2. 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>

results matching ""

    No results matching ""