跳转到主要内容
PRODUCT DOCUMENTS

快速找到所需文档,高效完成接入与排障

浏览产品文档与友盟 Skill,展开目录并阅读正文。

应用内H5 JS SDK接入说明

应用内H5的JS SDK版本号为1.0.2,请勿使用其他版本号,否则可能会导致数据无法上报!

重要

此文档应用于App端专业版应用内H5分析功能,需要与Android/iOS SDK同步使用。使用H5页面分析需要付费升级为Pro版本,如您已经有对接的友盟商务销售请联系他确认意向,如果没有您可以联系我们了解开通

api说明

初始化init

初始化方法,调用示意

import { init } from '@umengfe/apm';
init({
   pageFilter: {
    mode:'ignore',
    rules:['https://www.umeng.com']
  },
  pkgList:['com.uemng.apmios','com.umeng.apmandroid']
})

参数如下

黑白名单设置pageFilter

用于设置采集的H5页面黑白名单,可以在黑名单和白名单中选择其一,如果选择白名单的方式,那么只有符合标准的页面会被采集,如果选择的是黑名单的方式,那么符合标准的页面不会被采集

此项非必须参数,用于根据页面地址判断是否过滤日志,包含如下属性

属性

含义

默认

类型

mode

匹配模式

当值为ignore,表示黑名单模式,命中规则的不上报 、当值为match,表示白名单模式命中规则的上报

ignore

枚举值 ignore|match

rules

匹配规则集合,当类型为string时,表示包含当页面url包含该字符串时命中规则;当类型为Funtion,该函数返回true表示命中规则,false表示未命中规则;当类型为数组时,表示规则集合,规则之间为或的关系,只要任意一个规则命中,则规则集命中。

[],该默认值表示黑名单为空,日志全部上报

string | RegExp | Function | Array<string | RegExp | Function>

与Native端打通 *必须项

打通Android/iOS 的native端。为必填参数。

当且仅当在native端集成友盟APM 最新版sdk(ios>1.6.0,安卓>1.6.0)时生效,表示允许通过native发送日志的应用包名称,是一个字符串,用英文逗号分隔多个pkg包名称。

属性

含义

默认

类型

pkgList

通过native发送日志的应用包名称白名单集合,如有多个包名称,用英文逗号分隔

'' 表示包名称地址为空,默认不发送日志

string | Array<string>

举例

'com.umeng.com,com.apm.com'

['com.umeng.com','com.apm.com']

重要

Android/iOS 端上也要做相应的打通,具体参见:Android高级功能iOS高级功能

输出日志等级

非必填,表示js日志输出日志等级

属性

含义

默认

类型

logLevel

日志等级

0

枚举值

0 表示ERROR日志

1 表示WARN日志

2 表示INFO日志

3 表示DEBUG日志

​

sdk部署说明

异步加载

情景一 通过cdn异步引入sdk后,设置初始化参数。

<script>
      void (function (e, t, n, a, o, i, m) {
        (e._um_apm_namespace = o),
          (e[o] =
            e[o] ||
            function () {
              (e[o].q = e[o].q || []).push(arguments);
            }),
          (e[o].l = e[o].l || +new Date()),
          (i = t.createElement(n)),
          i.setAttribute('crossorigin', ''),
          (i.src = a),
          (m = t.getElementsByTagName(n)[0]),
          m.parentNode.insertBefore(i, m);
      })(window, document, "script", "https://g.alicdn.com/jssdk/apm/1.0.2/es5/uapm.iife.js", "_apm");
      _apm('create',{
        pageFilter: { mode: 'ignore', rules: [] },
        pkgList: ['com.uemng.apmios', 'com.umeng.apmandroid'],
      });
</script>
   

情景二在sdk引入之前设置初始化参数

​

<script>
window._apm = window._apm || {
  p: [
    [
      'create',
      {
        pkgList: 'com.uc.WPK-iOS-Example,com.umeng.UMAPMDemo,com.efs.demo',
        pageFilter: {
          mode: 'ignore',
          rules: [],
        },
      },
    ],
  ],
}; 
</script>
<script>
      void (function (e, t, n, a, o, i, m) {
        (e._um_apm_namespace = o),
          (e[o] =
            e[o] ||
            function () {
              (e[o].q = e[o].q || []).push(arguments);
            }),
          (e[o].l = e[o].l || +new Date()),
          (i = t.createElement(n)),
          i.setAttribute('crossorigin', ''),
          (i.src = a),
          (m = t.getElementsByTagName(n)[0]),
          m.parentNode.insertBefore(i, m);
      })(window, document, "script", "https://g.alicdn.com/jssdk/apm/1.0.2/es5/uapm.iife.js", "_apm");
</script>

同步加载

<script>
window._um_apm_namespace = '_apm';
window[_um_apm_namespace] = window[_um_apm_namespace] || {
  p:[],
}; 
window[_um_apm_namespace].p.push([
      'create',
      {
        pkgList: 'com.uc.WPK-iOS-Example,com.umeng.UMAPMDemo,com.efs.demo',
        pageFilter: {
          mode: 'ignore',
          rules: [],
        },
      },
]);
</script>
<script src="https://g.alicdn.com/jssdk/apm/1.0.2/es5/uapm.iife.js" crossorigin></script>

同步加载和异步加载区别

异步加载:又称为非阻塞加载,表示浏览器在下载执行JS之后还会继续处理后续页面。若对页面性能的要求非常高,建议使用此方式。(异步加载无法捕捉到SDK加载初始化完成之前的JS错误和资源加载错误)

同步加载:又称为阻塞加载,表示当前JS加载完毕后才会进行后续处理。如需捕捉从页面打开到关闭的整个过程中的JS错误和资源加载错误,建议使用此方式

通过npm集成

在终端执行如下命令安装sdk

npm install @umengfe/apm --save

ESM

import { init } from '@umengfe/apm';
init({
  pageFilter: { mode: 'ignore', rules: [] },
  pkgList: ['com.uemng.apmios', 'com.umeng.apmandroid'],
});

CJS

const APM  =  require('@umengfe/apm');
APM.init({
  pageFilter: { mode: 'ignore', rules: [] },
  pkgList: ['com.uemng.apmios', 'com.umeng.apmandroid'],
});

兼容性说明

浏览器和平台兼容性

浏览器/平台

支持版本

Safari

Safari 9+

Chrome

Chrome 49+

IE

IE 9+

Edge

Edge 12+

Firefox

Firefox 36+

Opera

Opera 43+

Safari for iOS

Safari for iOS 9.3.2+

Android Browser

android_webkit 4.4.2+

安卓:测试用例,云真机环境,华为荣耀6,系统4.4.2 红米2 安卓4.4.4

image.pngimage.png

ios: 测试用例,云真机环境,iphone6s,ios9.3.2

image.png