本文介绍小程序如何接入应用性能监控全链路版提供的SDK,直接使用平台上的产品及服务。
需要区分中国大陆(不包括港澳台地区)和海外的SDK上报域名。
注意
柔佛是开白地域,如需查看该地域接入的应用和功能页面,请提交工单。
相对于NPM,CJS接入方式省去构建NPM的步骤。
小程序/monitor/apmplus.js
文件中。使用node module(require)方式集成
将以下内容添加至app.js
文件中,完成初始化。
// app.js const client = require('./monitor/apmplus.js'); client.init({ aid: 123, // 替换成您的aid token:'xxx-xxx' // 替换成您的token }) client.start() // App({...})
使用ES module(import)方式集成
将以下内容添加至app.js
文件中,完成初始化。
// app.js import client from './monitor/apmplus.js' client.init({ aid: 123, // 替换成您的aid token:'xxx-xxx' // 替换成您的token }) client.start() // App({...})
NPM方式接入SDK需要引入指定小程序的适配层。
所有平台的适配层如下所示:
例如,在微信小程序平台则引入WxAdapter,可有效减少无用代码冗余。下面以微信小程序为例,介绍使用NPM方式接入SDK的步骤。
小程序接入NPM。
每个小程序平台都有各自NPM的接入方式,例如:微信小程序NPM接入指南。
安装NPM。
npm install @apmplus/mini-program
将以下代码添加到app.js
文件中,接入并初始化。
// app.js import { createMiniProgramClient, WxAdapter } from '@apmplus/mini-program' const client = createMiniProgramClient([WxAdapter]) client.init({ aid: 123, // 替换成您的aid token:'xxx-xxx' // 替换成您的token }) client.start() // App({...})
npm install @apmplus/mini-program
Taro支持产物为微信小程序、抖音小程序、支付宝小程序、百度小程序、飞书小程序。
如果您的产物是一个平台,以微信小程序为例。
将以下内容添加至app.js
文件中以完成初始化。
// app.js import { createMiniProgramClient, WxAdapter } from '@apmplus/mini-program'; const client = createMiniProgramClient([WxAdapter]); if (client) { client.init({ aid: 123, // 替换成您的aid token:'xxx-xxx' // 替换成您的token }); client.start(); } // class App extends Component {
如果您的产物是多个平台,那么可以用环境变量TARO_ENV的方式按需引入正确的适配层。
例如您要编译两个端:微信小程序、抖音小程序的产物。
添加微信小程序对应的文件wx.js
。
// wx.js import { createMiniProgramClient, WxAdapter } from '@apmplus/mini-program' const client = createMiniProgramClient([WxAdapter]) export default client
添加抖音小程序对应的文件tt.js
。
// tt.js import { createMiniProgramClient, TtAdapter } from '@apmplus/mini-program' const client = createMiniProgramClient([TtAdapter]) export default client
在app.js
中根据环境名TARO_ENV动态引入指定文件。
// app.js let client if (process.env.TARO_ENV === 'weapp') { client = require('./wx').default } else if (process.env.TARO_ENV === 'tt') { client = require('./tt').default } if (client) { client.init({ aid: 123, // 替换成您的aid token:'xxx-xxx' // 替换成您的token }) client.start() } // class App extends Component {
如果您的产物下包含支付宝小程序平台,则需要额外配置一个integration。
import Taro from '@tarojs/taro'; import { createMiniProgramClient, MyAdapter, FrameworksAdapterIntegration } from '@apmplus/mini-program'; const client = createMiniProgramClient([MyAdapter]); if (client) { client.init({ aid: 123, // 替换成您的aid token:'xxx-xxx' // 替换成您的token integrations: [FrameworksAdapterIntegration({ Taro })], }); client.start(); }
Uni app也支持产物为微信小程序、抖音小程序、支付宝小程序、百度小程序、飞书小程序。如果你的产物是多个平台,可以用条件编译按需引入正确的适配层,示例代码如下:
import { createMiniProgramClient, WxAdapter, TtAdapter } from '@apmplus/mini-program' const getCorrectAdapter = () => { switch (process.env.VUE_APP_PLATFORM) { case 'mp-weixin': return [WxAdapter] case 'mp-toutiao': return [TtAdapter] default: return null } } const client = createMiniProgramClient(getCorrectAdapter()) if (client) { client.init({ aid: 123, // 替换成您的aid token:'xxx-xxx' // 替换成您的token }) client.start() }
说明
Uni App版本不同导致环境变量名不同,需根据实际业务场景进行代码优化。
以下以微信小程序为例,介绍设置合法域名的详细操作步骤。
export type InitOptions = { aid: number // 应用ID,必填参数 token: string // 应用 token,必填参数 userId?: string // 手动用户ID deviceId?: string // 设备ID useLocalConfig?: boolean = false // 是否使用本地配置,若设置为true,则不拉取平台配置的采样 domain?: string // 私有化部署方式必填,填写部署的域名 plugins?: Plugins // 插件配置 详情见「配置插件」文档 integrations?: Integration[] // 集成配置,在兼容Taro支付宝小程序时用到,详情见「按需加载集成」文档 }
所有已接入的小程序平台可以使用以下方式验证是否成功接入SDK。
以微信小程序为例,介绍详细操作步骤。