支付宝小程序集成说明
U-APM的小程序功能需要申请购买使用,可点击了解
一、快速接入
1.1 安装SDK
购买后访问SDK中心,获取最新的SDK并按照下述文档接入,点此访问SDK下载中心
1.2 通过npm集成
只需在app.js 文件的顶部添加以下JS代码,即可进行稳定性指标的统计:
ESM
import "@umengfe/mini-apm/build/alipay.esm";
App({
umengConfig: {
appKey: 'YOUR_UMENG_APPKEY', // 由友盟分配的APP_KEY
version: '开发者的小程序应用版本',
debug: true, // 是否打开调试模式
},
})1.3 初始化
我们提供了两种SDK初始化方式,开发者可根据自身需要进行选择。
方式一:设置umengConfig,执行上下文时
// ESM
import "@umengfe/mini-apm/build/alipay.esm";
App({
umengConfig: {
appKey: 'YOUR_UMENG_APPKEY',
debug: true,
},
});说明 注意:切记一定要正确设置umengConfig,不要拼写错误
方式二:主动调用init方法进行初始化
// ESM
import { init } from "@umengfe/mini-apm/build/alipay.esm";
init({
appKey: 'YOUR_UMENG_APPKEY',
debug: true,
})
App({
onlaunch(){}
});1.4 增加友盟+数据服务域名
在支付宝开发者后台添加白名单合法域名:https://umini.shujupie.com,https://errlog.umeng.com操作步骤:登录支付宝开放平台,进入小程序的 设置->开发设置->服务器域名白名单,把 https://umini.shujupie.com,https://errlog.umeng.com加入 request合法域名,如图:

1.5 勾选友盟+小程序统计能力
在支付宝开发者后台,管理->能力管理->添加能力->勾选友盟+小程序统计能力

1.6 SDK初始化参数配置
参数配置项 | 参数功能 | 注意事项 | 类型 | 首次使用默认值 |
appkey | 由友盟分配的APP_KEY | 暂无 | string | true |
version | 开发者的小程序应用的版本 | 暂无 | string | false |
debug | 是否打开调试模式;建议打开,可以帮助在小程序端进行数据上报的debug | 暂无 | boolean | true |
pageFilter | 设置页面维度内采集行为的黑白名单(可限制页面内产生的错误和api采集上报) | 暂无 | Object | false |
errorFilter | 设置采集错误黑白名单 | 暂无 | Object | false |
apiFilter | 设置采集api请求黑白名单 | 暂无 | Object | false |
1.7 黑白名单设置
pageFilter
import { init } from '@umengfe/mini-apm/build/alipay.esm';
init({
appKey:'appkey',
version: '1.0.0',
pageFilter: {
mode: 'ignore',
// 当类型为string时,表示包含当页面url包含该字符串时命中规则
rules: ['page/index'],
},
});errorFilter
import { init } from '@umengfe/mini-apm/build/alipay.esm';
init({
appKey:'appkey',
version: '1.0.0',
errorFilter: {
mode: 'ignore',
// 当类型为string时,表示包含当错误堆栈包含该字符串时命中规则
rules: ['unhandledrejection', 'xxx is not defined'],
},
});apiFilter
import { init } from '@umengfe/mini-apm/build/alipay.esm';
init({
appKey:'appkey',
apiFilter: {
mode: 'ignore',
// 当类型为string时,表示包含当api url含该字符串时命中规则
rules: ['/xxxx/getUserinfo'],
},
});用于设置采集项的黑白名单,可以在黑名单和白名单中选择其一,如果选择白名单的方式,那么只有符合标准会被采集,如果选择的是黑名单的方式,那么符合标准的不会被采集
此项非必须参数,用于判断是否过滤日志,包含如下属性
属性 | 含义 | 默认 | 类型 |
mode | 匹配模式 当值为ignore,表示黑名单模式,命中规则的不上报 、当值为match,表示白名单模式命中规则的不上报 | ignore | 枚举值 ignore|match |
rules | 匹配规则集合,当类型为string时,表示包含该字符串时命中规则;当类型为Funtion,该函数返回true表示命中规则,false表示未命中规则;当类型为数组时,表示规则集合,规则之间为或的关系,只要任意一个规则命中,则规则集命中。 | [],该默认值表示黑名单为空,日志全部上报 | string | RegExp | Function | Array<string | RegExp | Function> |
二、高级功能
2.1 setUserid
方法描述:可手动设置userid,用来追踪采集数据
类型:Function
参数:
id(string): 开发者获取到的用户userid
返回值:
无
import { init } from '@umengfe/mini-apm/build/alipay.esm';
init({
appKey:'appkey',
useOpenid: false
});
my.$umapm.setUserid(id);2.2 setPageFilter
方法描述:设置页面维度内采集行为的黑白名单
类型:Function
参数:
参考上述黑白名单设置
返回值:
无
import { init } from '@umengfe/mini-apm/build/alipay.esm';
init({
appKey:'appkey',
useOpenid: false
});
my.$umapm.setPageFilter({
mode: 'ignore',
rules: ['page/index'],
},
});2.3 setErrorFilter
方法描述:设置采集错误堆栈黑白名单
类型:Function
参数:
参考上述黑白名单设置
返回值:
无
import { init } from '@umengfe/mini-apm/build/alipay.esm';
init({
appKey:'appkey',
useOpenid: false
});
my.$umapm.setErrorFilter({
mode: 'ignore',
rules: ['unhandledrejection', 'xxx is not defined'],
});2.4 setApiFilter
方法描述:设置api请求采集黑白名单
类型:Function
参数:
参考上述黑白名单设置
返回值:
无
import { init } from '@umengfe/mini-apm/build/alipay.esm';
init({
appKey:'appkey',
useOpenid: false
});
my.$umapm.setApiFilter({
mode: 'ignore',
// 当类型为string时,表示包含当api url含该字符串时命中规则
rules: ['/xxxx/getUserinfo'],
});2.5 captureException
方法描述:自定义错误手动采集上报
captureException可以通过my.$umapm在全局变量中取,也可以在import sdk的时候导出,下面是具体的手动采集上报的示例代码:
// 从全局中取用示例
import { init } from '@umengfe/mini-apm/build/alipay.esm.js';
init({
appKey: 'appkey',
debug: true
})
try {
... YOUR CODE
} catch (error) {
my.$umapm.captureException(error);
}// 引入时声明的示例
import { init, captureException } from '@umengfe/mini-apm/build/alipay.esm.js';
init({
appKey: 'appkey',
debug: true
})
try {
... YOUR CODE
} catch (error) {
captureException(error);
}三、其他说明事项
慎重调用my.clearStorage()以及my.clearStorageSync()接口!SDK会将用户相关操作数据缓存在客户端数据存储模块,在特定时间启动发送策略。若调用该接口可导致数据统计不准确的问题;
若用户在使用小程序过程强制关闭支付宝有可能会造成统计数据丢失的情况。
四、第三方框架支持
目前小程序SDK支持以下第三方框架,具体使用方法请参考demo:待补充
uniapp
taro
加入开发者钉钉交流群
如您正在接入U-APM SDK 恰好有问题需要我们支持,或想和其他开发者交流 崩溃问题的优化与解决 都可以加入到该钉钉群.