使用uts开发,调用QuickTracking性能体验SDK相关接口,实现QuickTracking原生APM能力在uniapp平台上进行扩展。
1.下载插件
平台兼容性
Android | iOS |
适用版本区间:4.4 - 向上兼容 | 适用版本区间:9 - 向上兼容 |
引入&配置SDK:
1.1 单击下载插件并导入HBuilderX

1.2 勾选需要集成原生插件的项目

1.3 插件使用说明
在使用插件前您需要在Quick Tracking平台中获取专属的埋点Appkey和收数域名

1.4 Android SDK初始化前置操作
因SDK需要Applicaiton.onCreate函数中调用预初始化函数QtConfigure.preInit(),预初始化函数不会采集设备信息
需要您修改对应module中的index.uts文件,如图:

重要
uts插件基于uni-app-x进行适配的,如果遇到无法初始化等问题,请使用 index.uts替换掉原有Android中的index.uts文件
1.5 鸿蒙Next SDK初始化前置操作
因架构限制需要在应用侧stage中进行SDK的预初始化
需要您修改对应module中的index.uts文件,如图:

2.SDK API
2.1 SDK统计功能启用(初始化)
初始化即代表开启功能
App.vue
<script>
// #ifdef APP
import * as QtAnalytics from '@/uni_modules/QT-Analytics';
import { initWithConfig } from '@/uni_modules/QT-APM';
// #endif
export default {
onLaunch: function() {
// #ifdef APP
const systemInfo = uni.getSystemInfoSync();
if (systemInfo.platform === 'ios') {
QtAnalytics.setCustomDomain(
'您的收数服务域名',
'您的备用收数服务域名'
);
QtAnalytics.initWithAppkey('您应用的appkey', '应用市场');
const apmConfig = {
// 启动模块监控开关(iOS)
launchMonitorEnable : true,
// 内存模块监控开关(iOS)
memMonitorEnable : true,
// 网络模块监控开关(iOS)
networkEnable : true,
// H5打通模块开关(iOS)
javaScriptBridgeEnable : true,
// OOM模块监控开关(iOS)
oomMonitorEnable : true,
// 原生页面模块监控开关(iOS)
pageMonitorEnable : true,
// 初始化主动发送PV(iOS)
initSendPVEnable : true,
// crash&卡顿监控开关(iOS)
crashAndBlockMonitorEnable: true,
// 卡顿监控参数:发送检测心跳的时间间隔(iOS)
sendBeatInterval : 30, //仅iOS有的能力,文档不好
// 卡顿监控参数:检测卡顿的时间间隔(iOS)
checkBeatInterval: 2,
// 卡顿监控参数:连续多少次没心跳 认为触发卡顿(iOS)
toleranceBeatMissingCount : 3,
}
}
if (systemInfo.platform === 'android') {
QtAnalytics.init();
const apmConfig = {
enableCrashJava: true,
enableCrashNative: true,
enableAnr: true,
enablePa: true,
paTimeOut: true,
enableLaunch: true,
enableMemory: true,
enableH5: true,
enableCodeLog: true,
logUserId: "test_uniapp_android",
enableSendPv: true,
}
initWithConfig(apmConfig);
}
// #endif
console.log('App Launch');
}
}
</script>App.uvue
<script>
// #ifdef APP
import * as QtAnalytics from '@/uni_modules/QT-Analytics';
import { initWithConfig } from '@/uni_modules/QT-APM';
// #endif
export default {
onLaunch: function() {
// #ifdef APP-IOS
QtAnalytics.setCustomDomain(
'您的收数服务域名',
'您的备用收数服务域名'
);
QtAnalytics.initWithAppkey('您应用的appkey', '应用市场');
initWithConfig({
// 启动模块监控开关(iOS)
launchMonitorEnable: true,
// 内存模块监控开关(iOS)
memMonitorEnable: true,
// 网络模块监控开关(iOS)
networkEnable: true,
// H5打通模块开关(iOS)
javaScriptBridgeEnable: true,
// OOM模块监控开关(iOS)
oomMonitorEnable: true,
// 原生页面模块监控开关(iOS)
pageMonitorEnable: true,
// 初始化主动发送PV(iOS)
initSendPVEnable: true,
// crash&卡顿监控开关(iOS)
crashAndBlockMonitorEnable: true,
// 卡顿监控参数:发送检测心跳的时间间隔(iOS)
sendBeatInterval: 30,
// 卡顿监控参数:检测卡顿的时间间隔(iOS)
checkBeatInterval: 2,
// 卡顿监控参数:连续多少次没心跳 认为触发卡顿(iOS)
toleranceBeatMissingCount: 3
});
// #endif
// #ifdef APP-ANDROID
QtAnalytics.init();
initWithConfig({
enableCrashJava: true,
enableCrashNative: true,
enableAnr: true,
enablePa: true,
paTimeOut: true,
enableLaunch: true,
enableMemory: true,
enableH5: true,
enableCodeLog: true,
logUserId: "test_uniapp_android",
enableSendPv: true
});
// #endif
console.log('App Launch');
},
onShow: function() {
console.log('App Show');
},
onHide: function() {
console.log('App Hide');
}
}
</script>
<style>
</style>
注意:uni-app的Android 和 iOS 平台不支持通过条件编译来区分,如果需要区分 Android、iOS 平台,请通过调用 uni.getSystemInfo 来获取平台信息。
H5集成方式请参考文档:Web SDK
小程序集成方式请参考文档:小程序 SDK
2.2 接口相关
1. 配置功能开关
export type ApmConfig = {
// java crash捕获(Android)
enableCrashJava ?: boolean,
// native crash捕获(Android)
enableCrashNative ?: boolean,
// ANR捕获(Android)
enableAnr ?: boolean,
// 卡顿捕获(Android)
enablePa ?: boolean,
// 卡顿捕获时间(Android)
paTimeOut ?: number,
// 启动监控(Android)
enableLaunch ?: boolean,
// 内存监控(Android)
enableMemory ?: boolean,
// App与H5打通开关(Android)
enableH5 ?: boolean,
// 日志回捞(Android)
enableCodeLog ?: boolean,
// 日志回捞用户标识(Android)
logUserId ?: string,
// 冷起PV上报开关(Android)
enableSendPv ?: boolean,
// 启动模块监控开关(iOS)
launchMonitorEnable ?: boolean,
// 内存模块监控开关(iOS)
memMonitorEnable ?: boolean,
// 网络模块监控开关(iOS)
networkEnable ?: boolean,
// H5打通模块开关(iOS)
javaScriptBridgeEnable ?: boolean,
// OOM模块监控开关(iOS)
oomMonitorEnable ?: boolean,
// 原生页面模块监控开关(iOS)
pageMonitorEnable ?: boolean,
// 初始化主动发送PV(iOS)
initSendPVEnable ?: boolean,
// 用于前后端链路打通(iOS)
rumConfig ?: string,
// crash&卡顿监控开关(iOS)
crashAndBlockMonitorEnable ?: boolean,
// 卡顿监控参数:发送检测心跳的时间间隔(iOS)
sendBeatInterval ?: Number,
// 卡顿监控参数:检测卡顿的时间间隔(iOS)
checkBeatInterval ?: Number,
// 卡顿监控参数:连续多少次没心跳 认为触发卡顿(iOS)
toleranceBeatMissingCount ?: Number,
}示例:
const apmConfig : ApmConfig = {
crashAndBlockMonitorEnable: true,
sendBeatInterval: 30,
initSendPVEnable: true,
};2. 崩溃回调
export function registerUMCrashCallback(callback : QTCrash) {
const crashCall = new QTCrashCallback(callback);
UMCrash.registerUMCrashCallback(crashCall)
}3. 自定义异常
export function generateCustomLog(e : string, type : string)4. APP应用内H5页面的APM功能
export function enableJavaScriptBridge(view : WebView)5. 日志回捞(安卓)
export class QTlog该文章对您有帮助吗?