UTS SDK

更新时间:
复制 MD 格式

使用uts开发,调用QuickTracking性能体验SDK相关接口,实现QuickTracking原生APM能力在uniapp平台上进行扩展。

1.下载插件

QuickTracking UTS插件下载地址

平台兼容性

Android

iOS

适用版本区间:4.4 - 向上兼容

适用版本区间:9 - 向上兼容

引入&配置SDK:

1.1 单击下载插件并导入HBuilderX

image

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

image

1.3 插件使用说明

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

image

1.4 Android SDK初始化前置操作

因SDK需要Applicaiton.onCreate函数中调用预初始化函数QtConfigure.preInit(),预初始化函数不会采集设备信息

需要您修改对应module中的index.uts文件,如图:

image

重要

uts插件基于uni-app-x进行适配的,如果遇到无法初始化等问题,请使用 index.uts替换掉原有Android中的index.uts文件

1.5 鸿蒙Next SDK初始化前置操作

因架构限制需要在应用侧stage中进行SDK的预初始化

需要您修改对应module中的index.uts文件,如图:

image

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