一、前提条件
参见 安装和初始化 文档,完成 SDK 的安装和初始化。
二、RN 环境下的持久化实现
RN 环境通过可选依赖 @react-native-async-storage/async-storage(>= 1.0.0)持久化 aid,存储 key 为 AEGIS_ID。
·已安装 @react-native-async-storage/async-storage:首次运行生成 aid 并持久化,同一设备后续启动复用同一 aid,设备去重与 UV 统计正常。
·未安装:SDK 自动降级(不报错),上报数据中 aid 字段为空、不持久化,设备去重与 UV 统计将受影响。如需完整的 UV 统计,建议安装该可选依赖:
$ npm install –save @react-native-async-storage/async-storage
注意:说明:
注意:兼容说明:SDK 同时兼容旧版 RN(< 0.59)内置的 AsyncStorage,独立包与内置模块均不可用时才会降级。
三、自定义 aid 上报规则
你可以根据下列算法自定义 aid 上报规则(RN 环境示例,使用 AsyncStorage)。
import AsyncStorage from '@react-native-async-storage/async-storage';async function getAid(callback) { try { let aid = await AsyncStorage.getItem('AEGIS_ID'); if (!aid) { aid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c) => { const r = (Math.random() * 16) | 0; const v = c === 'x' ? r : (r & 0x3) | 0x8; return v.toString(16); }); AsyncStorage.setItem('AEGIS_ID', aid); } callback?.(aid || ''); } catch (e) { callback?.(''); }}
注意:说明:
注意:若你需要使用自己构造的 aid 作为上报规则(通过初始化配置 aid: '自定义值' 传入,见 配置文档),需要满足后端对 aid 的校验规则:/^[@=.0-9a-zA-Z_-]{4,36}$/。