import Core, { Plugin } from "../../../core/src"; declare const _default: Plugin; /** * @插件 页面流转监控插件(Page View / PV 上报) * * 支持的路由框架: * 1. React Navigation(Stack / Tab / Drawer) * 2. Expo Router(底层与 React Navigation 完全一致,复用同一套接入方式) * 3. react-router-native(基于 MemoryHistory) * * ────────────────────────────────────────────────────────────────────────────── * 接入方式一:React Navigation / Expo Router * ────────────────────────────────────────────────────────────────────────────── * Expo Router 底层即 React Navigation,两者使用完全相同的接入方式,无需区分。 * * 方式 A:使用工具函数(推荐,零侵入) * import { createNavigationContainerRef } from '@react-navigation/native'; * import { createReactNavigationListener } from '@tencent/aegis-rn-sdk'; * * const navigationRef = createNavigationContainerRef(); * const listener = createReactNavigationListener(aegis, navigationRef); * * * * 方式 B:手动调用(适合自定义路由逻辑) * onStateChange={() => { * const routeName = navigationRef.getCurrentRoute()?.name ?? ''; * aegis.reportPageView(routeName); * }} * * ────────────────────────────────────────────────────────────────────────────── * 接入方式二:react-router-native * ────────────────────────────────────────────────────────────────────────────── * 使用工具组件 AegisRouteTracker: * * import { NativeRouter } from 'react-router-native'; * import { AegisRouteTracker } from '@tencent/aegis-rn-sdk'; * * * * * * * ────────────────────────────────────────────────────────────────────────────── * PV 上报说明(与 web-sdk spa 插件保持一致) * ────────────────────────────────────────────────────────────────────────────── * - 通过 SendType.PV 上报到 config.pvUrl * - 将当前路由名拼接为 originFrom 参数 * - 同步更新 bean.from 字段,影响后续所有日志上报 * - 相同路由不重复上报(去重) */ export default _default;