应用内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 --saveESM
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


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