# Flutter SDK
Flutter SDK 使用说明
Flutter SDK 主要用于Flutter语言开发的应用.
>[info]SDK 源码及demo:[https://github.com/analysys/ans-flutter-sdk](https://github.com/analysys/ans-flutter-sdk)
Releases中含有更新说明请您阅读,接口使用请参考本文档。
## 移动端iOS & Android Flutter插件使用说明
[flutter SDK](https://pub.dev/packages/analysys_flutter_plugin)主要对移动端iOS和Android两个平台常用接口的封装,支持常用埋点事件的统计上报。
## 插件安装
在 Flutter 项目下 `pubspec.yaml` 文件添加 `analysys_flutter_plugin` 依赖,配置如下:
```
dependencies:
## 易观方舟flutter插件
analysys_flutter_plugin: ^4.3.2
```
安装插件:
```dart
flutter packages get
```
代码引用
```dart
import 'package:analysys_flutter_plugin/analysys_flutter_plugin.dart';
```
## SDK初始化
### Android 端
建议在应用 Application 中调用 SDK 初始化接口 init(), 配置 AppKey、Channel
```
import com.analysys.AnalysysAgent;
import com.analysys.AnalysysConfig;
import com.analysys.EncryptEnum;
import io.flutter.app.FlutterApplication;
public class AnalysysApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
// 初始化SDK
AnalysysConfig config = new AnalysysConfig();
config.setAppKey("77a52s552c892bn442v721");
config.setChannel("豌豆荚");
AnalysysAgent.init(this, config);
// 设置 打开 debug 模式 0:关闭 Debug 1:打开 Debug数据仅调试 2:打开Debug数据计入平台统计
注意:若设置其他值则不生效,使用默认值
AnalysysAgent.setDebugMode(this, 2);
// 设置自定义上传地址为 scheme://host + :port
AnalysysAgent.setUploadURL(mContext,"/*设置为实际地址*/");
}
}
```
### iOS 端
在Xcode工程文件`~AppDelegate.m` 中导入头文件`#import <AnalysysAgent/AnalysysAgent.h>`,并在入口函数`- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions`中进行SDK初始化:
```
// 导入SDK
#import <AnalysysAgent/AnalysysAgent.h>
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// 初始化SDK
AnalysysConfig.appKey = <#appkey#>;
AnalysysConfig.channel = @"App Store";
[AnalysysAgent startWithConfig:AnalysysConfig];
#ifdef DEBUG
[AnalysysAgent setDebugMode:AnalysysDebugButTrack];
#endif
// 设置上传地址
[AnalysysAgent setUploadURL:@"https://url:port"];
return YES;
}
```
## 插件使用
在所需代码dart文件中引入插件:
`import 'package:analysys_flutter_plugin/analysys_flutter_plugin.dart';`
## API接口
### 统计事件
事件跟踪,设置事件名称和事件详细信息。接口如下:
```dart
Map<String, Object> properties = {"productCategory": "iPhone X", "price": 6000};
AnalysysAgent.track("purchase", properties);
```
### 用户属性设置
SDK提供以下接口供用户设置用户的属性,比如用户的年龄/性别等信息。
```dart
Map<String, Object> properties = {"nickName":"小叮当", "hobby": ["Singing", "Dancing"]};
AnalysysAgent.profileSet(properties);
```
### 通用属性设置
如果某个事件的属性,在所有事件中都会出现,则这个属性可以做为通用属性,通过 registerSuperProperties() 将该属性设置为事件通用属性,则设置后每次发送事件的时候都会带有该属性。比如用户浏览/购买商品过程中的用户等级就可以作为通用属性。
```dart
Map<String, Object> properties = {"birthday": "2010-01-01"};
AnalysysAgent.registerSuperProperties(properties);
```
### 用户关联
用户 ID 关联接口。将 用户ID和匿名ID关联,计算时会认为是一个用户的行为。该接口是在匿名ID发生变化的时候调用,来告诉 SDK 匿名ID变化前后的 ID 对应关系。该场景一般应用在用户注册/登录的过程中。比如:一个匿名用户浏览商品,系统为其分配的distinctId = "1234567890987654321",随后该匿名用户进行注册,系统为其分配了新的注册 ID,aliasId = "ABCDEF123456789",此时就需要调用 alias 接口对两个 ID 进行关联。接口如下:
```dart
AnalysysAgent.alias('A');
```
其他接口请参iOS& Android 接口
- 产品简介
- 快速上手
- 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 许可
- 产品试用及采购
- 参与贡献