# ReactNative SDK
该 SDK 适用于ReactNative 跨平台项目。
## 集成RN模块
### 1、安装SDK RN模块
通过npm集成SDK RN模块
```
npm install react-native-analysys
```
### 2、链接SDK RN模块
>[info]React Native 0.60 及以上版本会 autolinking,不需要执行下边的 react-native link 命令。
```
react-native link react-native-analysys
```
### 3、配置 package.json
在 React Native 项目里的 package.json 文件的 script 模块里增加如下配置
```
"scripts": {
"postinstall": "node node_modules/react-native-analysys/ansHook.js -run"
}
```
### 4、执行 npm 命令 <a href="id.reactnativev1.15-zhi-hang-npm-ming-ling" id="id.reactnativev1.15-zhi-hang-npm-ming-ling"></a>
```
npm install
```
## 集成Android端
### 1、集成sdk,版本要求4.5.7及以上,参考官方文档[https://docs.analysys.cn/integration/sdk/android](https://docs.analysys.cn/integration/sdk/android)
### 集成React Native支持模块:
```
// 方舟sdk
implementation('cn.com.analysys:analysys-arkanalysys:4.5.7')
// React Native支持模块
implementation('cn.com.analysys:analysys-react-native:4.5.7')
```
### 2、设置接口相关Module
```
public class MainApplication extends Application implements ReactApplication {
private final ReactNativeHost mReactNativeHost =
new ReactNativeHost(this) {
...
@Override
protected List<ReactPackage> getPackages() {
List<ReactPackage> packages = new PackageList(this).getPackages();
packages.add(new RNAnalysysAgentPackage());
return packages;
}
...
};
@Override
public ReactNativeHost getReactNativeHost() {
return mReactNativeHost;
}
}
```
## iOS端
### 集成方舟SDK
React Native 0.60 及以上版本可以通过 CocoaPods 的方式引用 RNAnalysysAgentModule 插件及 易观方舟SDK;React Native 0.60 以下版本需要使用手动方式添加。
#### 方式一:CocoaPods 集成
1. 将`npm install`下载后的文件:项目目录/node_modules/react-native-analysys文件拷贝至ios工程下(一般为.xcodeproj同级目录),在该目录下创建Podfile文件,并配置RN插件,如下示例:
```
platform :ios, '8.0'
use_frameworks!
target 'YourApp' do
pod 'RNAnalysysAgentModule', :path => 'react-native-analysys/'
end
```
1. 关闭Xcode,在工程目录下执行`pod install`或`pod install --verbose --no-repo-update`,完成后打开xxx.xcworkspace工程
#### 方式二:手动引入
1. 下载[方舟SDK](https://github.com/analysys/ans-ios-sdk/releases)并导入iOS工程中
2. 将`npm install`下载后的`RNAnalysysAgentModule`插件(路径:项目目录/node_modules/react-native-analysys_test/sdk/ios)导入工程
3. 勾选 Copy items if needed、Create groups- Add 完成添加类库
4. 添加依赖库:选择工程 - Targets - “项目名称” - Build Phase - Link Binary With Libraries :`libz.tbd、libicucore.tbd、libsqlite3.tbd`
### 初始化SDK
在Xcode工程文件`~AppDelegate.m` 中导入头文件`"#import <AnalysysAgent/AnalysysAgent.h>"`,配置 SDK 相关内容。
```
#import <AnalysysAgent/AnalysysAgent.h>
@implementation AppDelegate
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
// 设置key,77a52s552c892bn442v721为样例数据,请根据实际情况替换相应内容
// AnalysysAgent 配置信息
AnalysysConfig.appKey = @"77a52s552c892bn442v721";
// 设置渠道
AnalysysConfig.channel = @"App Store";
// 设置追踪新用户的首次属性
AnalysysConfig.autoProfile = YES;
// 设置上传数据使用AES加密,需添加加密模块
// AnalysysConfig.encryptType = AnalysysEncryptAES;
// 使用配置初始化SDK
[AnalysysAgent startWithConfig:AnalysysConfig];
#if DEBUG
[AnalysysAgent setDebugMode:AnalysysDebugButTrack];
#else
[AnalysysAgent setDebugMode:AnalysysDebugOff];
#endif
// 设置上报地址
[AnalysysAgent setUploadURL:@"https://url:port""];
...
return YES;
}
@end
```
## React Native 中 JS 使用
在 js 中获取 `RNAnalysysAgentModule` 模块
```
// 易观统计模块
import AnalysysAgent from "react-native-analysys";
```
### 接口调用
在相关需要进行统计的部分进行埋点。以点击购买事件为例:
```
// 事件名称为:buy(购买) 事件附加属性为:ptype(产品分类): iPhone; model(型号): iPhone X
var properties = {
'ptype': 'iPhone',
'model': 'Apple iPhoneX'
}
AnalysysAgent.track('buy',properties)
```
- 产品简介
- 快速上手
- Step 1 安装部署
- Step 2 激活系统创建项目
- Step 3 开启您的分析旅程
- 1. 集成 SDK
- 2. 可视化埋点
- 3. 创建分析模型
- 附:埋点方案设计
- 附:数据分析思路
- 产品更新日志
- V5.5 新增LTV分析功能等
- V5.3 UI 升级、分布分析重构、维度表动态更新、细节优化等
- V5.2 新增归因分析、消息中心、重构埋点方案、优化看数据体验……
- V5.1.0317 体验优化& Bug修复
- V5.1 升级可视化埋点、增强权限控制……
- Part I 产品功能说明
- 名词解释
- 指标说明
- 看板
- 5.3.3 看板 UI 重构
- 分析
- 事件分析
- 渠道分析
- 渠道相关名词解释
- 来源识别规则
- 搜索引擎
- 社交媒体
- 小程序场景值
- Session 分析
- Session 规则
- 实时分析
- 留存分析
- 转化漏斗
- 智能路径
- 归因分析
- 热图分析
- Web/H5 热图
- APP 热图
- 分布分析
- 间隔分析
- 属性分析
- LTV 分析
- 多主体分析
- 自定义查询
- 用户
- 用户分群
- 用户探查
- 用户标签
- 标签体系应用概览
- 标签体系
- 标签生命周期管理
- 标签加工
- 如何自定义SQL创建标签
- 单用户档案
- 运营
- 广告跟踪
- 微信小程序渠道追踪
- 预置广告媒介和渠道
- App 推广监测(Beta版本)
- 电子邮件(即将下线)
- 短信(即将下线)
- 消息通知(即将下线)
- 项目管理
- 项目概览
- 项目角色管理
- 项目成员管理
- 数据接入管理
- 埋点方案
- 可视化埋点
- 集成SDK接入数据
- 数据验证
- 用户数据导入
- 微信小程序全埋点事件定义
- 元数据管理
- 元事件
- 虚拟事件
- 事件属性
- 用户属性
- Session 管理
- 页面组管理
- 维度表
- 服务集成配置
- 监控告警
- 智能监控
- 自定义监控
- 平台管理
- 企业概览
- 项目管理
- 成员管理
- 安全设置
- 企业设置
- 日志管理
- 帐号设置
- Part II 技术文档
- 技术接入准备工作
- 部署环境检测工具
- 数据模型
- 数据格式
- 预置事件和属性
- App预置事件/属性
- JS 预置事件/属性
- 如何准确识别用户
- 如何设计埋点方案
- 分平台上报数据 vs 跨平台打通
- SDK 指南
- Android SDK
- 快速集成
- 全埋点模块
- 消息推送模块
- Android Hybrid模式
- SDK Gradle集成方式
- 多渠道打包
- 易观小工具
- 合规相关
- iOS SDK
- 快速集成
- 全埋点介绍
- iOS Hybrid模式
- 消息推送模块
- JS SDK
- 快速集成
- JS SDK基础版
- JS SDK插件
- uni-app SDK
- 快速集成
- 打包原生APP
- 开启移动端全埋点
- uni-app SDK标准版
- 微信小程序 SDK
- 快速集成
- 微信小程序标准版
- 微信小程序插件版
- 微信小程序通用框架版
- 支付宝小程序 SDK
- 支付宝小程序标准版
- 支付宝小程序通用框架版
- 字节跳动小程序 SDK
- 字节跳动小程序标准版
- 字节跳动小程序通用框架版
- 百度小程序 SDK
- 百度小程序标准版
- 百度小程序通用框架版
- 钉钉小程序 SDK
- 钉钉小程序标准版
- 钉钉小程序通用框架版
- QQ小程序 SDK
- QQ小程序标准版
- QQ小程序通用框架版
- 快应用 SDK
- 华为WeCode小程序
- WeCode SDK 标准版
- WeCode SDK插件
- PhoneGap SDK
- mPaaS SDK
- ReactNative SDK
- Flutter SDK
- Java SDK
- Python SDK
- PHP SDK
- C++ SDK
- C# SDK
- Node JS SDK
- Lua SDK
- Golang SDK
- SDK FAQ
- identify与alias的区别
- 爬虫数据如何识别?
- 页面停留如何获取时间?
- 如果获取SDK及更新日志
- 代码埋点和无埋点有什么区别
- Web页面中发现丢失某一个事件
- 自研 SDK 注意事项
- 页面时长统计功能
- 飞书小程序 SDK
- 飞书小程序标准版
- 飞书小程序通用框架版
- Unreal Engine SDK
- 数据验证
- 客户端埋点验证
- Debug 数据验证
- 数据入库验证
- 数据导入
- 接口导入
- JAVA工具包
- 标准json文件导入
- csv格式导入
- 数据导入FAQ
- 数据导出
- JAVA工具包
- 事件数据导出
- 用户数据导出
- 直接从Kafka中消费数据
- 使用程序访问数据库
- 脚本工具
- API
- 分析API
- 事件分析
- 留存分析
- 自定义查询
- 转化漏斗
- 属性分析
- Session分析
- 渠道分析
- 分布分析
- 用户API
- 分群查询
- 用户档案
- 分群管理
- 管理API
- 权限管理
- 元数据管理
- 埋点方案管理
- 维度表管理
- 运营API
- 广告跟踪
- APP推广监测
- 平台管理API
- 项目管理
- 成员管理
- 第三方登录
- OAuth2.0登录
- LDAP登录
- GDPR 合规
- Part III 常见问题
- License 许可
- 产品试用及采购
- 参与贡献