@flare-engine/分析
类型 AnalyticsProvider 接口 + NoopAnalyticsProvider +反应上下文,加 createMemoryAnalytics 编号 : createConsoleAnalytics – 测试和dev的本地供应商. 混凝土平台适配器(PostHog, Amplitude, section, Firebase)是后发射; 在此之前在应用边界上自线.
安装
bun add @flare-engine/analytics
使用量
import {
AnalyticsContext,
useAnalytics,
NoopAnalyticsProvider,
} from '@flare-engine/analytics';
export function App() {
return (
<AnalyticsContext.Provider value={NoopAnalyticsProvider}>
{/* ... */}
</AnalyticsContext.Provider>
);
}
useAnalytics() 返回活动提供者。 这个 AnalyticsProvider 表面为 track(event, props?), (中文(简体) ), identify(userId, traits?), (中文(简体) ), screen(name, props?),以及 flush() - 全都是动脉 盗用 NoopAnalyticsProvider 对于另一个供应商来说,不需要改变消费者.
当地供应商
createMemoryAnalytics(opts?) 将事件捕获到一个可以检查的有界限的环缓冲器中——在测试中坚持行为的理想:
import { createMemoryAnalytics } from '@flare-engine/analytics';
const analytics = createMemoryAnalytics({ capacity: 100 });
await analytics.track('level_start', { zone: 1 });
await analytics.screen('hud');
analytics.getEvents();
// [{ type: 'track', name: 'level_start', props: { zone: 1 }, timestamp },
// { type: 'screen', name: 'hud', timestamp }]
- 每一次通话记录匹配
AnalyticsEvent变种. 当缓冲器满了( W)capacity默认值256,夹住>= 1)最古老的事件被放弃. getEvents()返回最古老的防御副本 ;clear()取出空来. 时间戳来自注射器now(默认)Date.now) (中文(简体) ).flush()是个禁忌.
createConsoleAnalytics(opts?) 日志每个事件到被注入的汇( 默认) console.log,作为 log('[analytics]', event) ——本地运行的零设置提供者.
AnalyticsEvent 被歧视的工会 type (单位:千美元)'track' 编号 : 'identify' 编号 : 'screen')——事件塑造了两个本地提供者的记录.
内置后退
在 CI 或 dev 构建中没有平台证书, 请选择 NoopAnalyticsProvider (或当地供应商)在您自己的嵌入式旗帜后方,所以在真实的资质存在之前,任何事物都不要触碰本地的SDK.