使用文档

React Native SDK

AntDock React Native SDK 为 React Native 应用提供完整的数据追踪能力。

SDK 获取方式

使用控制台提供的安装地址或下载包;本文不表示 SDK 已在公共仓库开源发布。

安装

将 SDK 源码文件复制到您的 React Native 项目中:

  1. 下载 sdk/react-native/src/ 目录下的所有文件
  2. 复制到项目的 src/lib/antdock/ 目录
  3. 安装依赖:@react-native-async-storage/async-storage
npm install @react-native-async-storage/async-storage

iOS 需要安装 pods:

cd ios && pod install

初始化

// App.tsx
import { AntDockTracker } from './lib/antdock'

AntDockTracker.init({
  appId: 'your-app-id',
  endpoint: 'https://你的域名',
  batchSize: 10,
  flushInterval: 5000,
  debug: false
})

API 参考

trackPageView(path, properties?)

追踪页面访问。

AntDockTracker.trackPageView('/home')

AntDockTracker.trackPageView('/product/detail', {
  product_id: '12345'
})

trackEvent(name, properties?)

追踪自定义事件。

AntDockTracker.trackEvent('button_click')

AntDockTracker.trackEvent('purchase', {
  order_id: 'ORD-12345',
  amount: 99.99
})

identify(userId, traits?)

识别用户身份。

await AntDockTracker.identify('user_123', {
  email: 'user@example.com',
  name: '张三'
})

flush()

立即发送队列中的数据。

reset()

重置用户身份。

React Navigation 集成

import { NavigationContainer, useNavigationContainerRef } from '@react-navigation/native'
import { NavigationTracker } from './lib/antdock'

export default function App() {
  const navigationRef = useNavigationContainerRef()

  return (
    <NavigationContainer
      ref={navigationRef}
      onReady={() => NavigationTracker.setNavigationRef(navigationRef)}
      onStateChange={() => NavigationTracker.onStateChange()}
    >
      {/* screens */}
    </NavigationContainer>
  )
}

Hooks

import { useTracking } from './lib/antdock'

function MyComponent() {
  const { trackEvent, trackPageView } = useTracking()

  return (
    <Button onPress={() => trackEvent('button_click')} title="Click" />
  )
}

配置选项

interface AntDockConfig {
  appId: string        // 必填
  endpoint: string         // 必填
  batchSize?: number       // 默认 10
  flushInterval?: number   // 默认 5000 (ms)
  debug?: boolean          // 默认 false
}

要求

  • React Native 0.64+
  • iOS 12.0+
  • Android 5.0 (API 21)+