- setup
- setDebugMode
- initCrashHandler
- stopCrashHandler
- onPageStart
- onPageEnd
- onCountEvent
- onCalculateEvent
- onLoginEvent
- onRegisterEvent
- onBrowseEvent
- onPurchaseEvent
- setAnalyticsReportPeriod
- identifyAccount
- detachAccount
添加初始化方法,调用 setup 方法会执行两个操作:
- 初始化 JAnalytics SDK
- 将缓存的事件下发到 dart 环境中。
注意: 插件版本 >= 0.0.1 android 端支持在 setup 方法中动态设置 channel,动态设置的 channel 优先级比 manifestPlaceholders 中的 JPUSH_CHANNEL 优先级要高。另外 参数 appKey 只对 IOS 生效,android 设置 appKey 需要在 gradle 中配置。
Janalytics janalytics = new Janalytics();
janalytics.setup(
appKey: "替换成你自己的 appKey",
channel: "theChannel",
);
设置是否开启debug模式。true则会打印更多的日志信息
Janalytics janalytics = new Janalytics();
janalytics.setDebugMode(true);
开启crashlog日志上报
Janalytics janalytics = new Janalytics();
janalytics.initCrashHandler();
关闭crashlog日志上报
Janalytics janalytics = new Janalytics();
janalytics.stopCrashHandler();
页面启动接口。在页面(widget state)的相关生命周期内调用,和onPageEnd需要成对调用,关于widget的不同情况下会对生命周期造成影响,详细请见说明
Janalytics janalytics = new Janalytics();
janalytics.onPageStart("your page name");
页面结束接口。在页面(widget state)的相关生命周期内调用,和onPageStart需要成对调用,关于widget的不同情况下会对生命周期造成影响,详细请见说明
Janalytics janalytics = new Janalytics();
janalytics.onPageEnd("your page name");
关于页面流做如下说明: 1、开发者自己决定所显示的 Page 是否是一个页面。在相应的方法调用onPageStart和onPageEnd方法,并且需要是成对调用 相应的方法包括:initState(),dispose(),didChangeAppLifecycleState(AppLifecycleState state) 2、当页面中包含多个 Page,每个 Page 都需当做页面统计时,基于 Widget 的切换模式,提供以下建议 replace模式:这种模式使用 IndexedStack 切换 Page,需要在自己的控制代码中根据显示逻辑调用响应的nPageStart和onPageEnd。 show/hide模式:这种模式使用 Offstage 来控制 Page 是否显示在屏幕外边,调用方式同replace模式 viewpage模式:这种模式使用 PageView 切换,如果每次切换都是 build Page,则调用方式和 说明1 相同。如果是复用的Page,则调用方式通replace模式。
计数事件模型,可以设置参数进行数据上报。
Janalytics janalytics = new Janalytics();
janalytics.onCountEvent(
"test_countID ", // 事件ID
extMap: extraMap //添加自己的Extra 信息 Map<String,String>
);
计算事件模型,计算事件会通过相同的事件不同的值进行累加,可以设置参数进行数据上报。
Janalytics janalytics = new Janalytics();
janalytics.onCalculateEvent(
"test_calculateID $", // 事件ID
1, // 事件对应的值
extMap: extraMap //添加自己的Extra 信息 Map<String,String>
);
登录事件模型,可以设置参数进行数据上报。
Janalytics janalytics = new Janalytics();
janalytics.onLoginEvent(
"testLoginMethod", // 登录方式
true,// 是否登录成功
extMap: extraMap //添加自己的Extra 信息 Map<String,String>
);
注册事件模型,可以设置参数进行数据上报。
Janalytics janalytics = new Janalytics();
janalytics.onRegisterEvent(
"testRegisterMethod", // 注册方式
true,// 是否注册成功
extMap: extraMap
);
浏览事件模型,可以设置参数进行数据上报。
Janalytics janalytics = new Janalytics();
janalytics.onBrowseEvent("test_browseID",//设置浏览内容id
"深圳热点新闻",//设置浏览的内容的名称
"news", //设置浏览的内容类型
30,//设置浏览的内容时长,单位秒)
extMap: extraMap
);
购买事件模型,可以设置参数进行数据上报。
// 延时 3 秒后触发本地通知。
Janalytics janalytics = new Janalytics();
janalytics.onPurchaseEvent(
"test_purchaseGoodsID", //商品ID
"篮球", //商品名称
300, //商品价格
true, //商品购买是否成功
Currency.CNY, //货币类型
"sport",//商品类型
1, // 商品数量
extMap: extraMap);
设置统计上报的自动周期,未调用前默认即时上报
Janalytics janalytics = new Janalytics();
janalytics.setAnalyticsReportPeriod(60);
开发者可以为用户增加账户信息,使统计数据可以以账户维度做统计分析 现开发的属性有:
中文名 | 英文名 | 类型 | 鉴权/备注 |
---|---|---|---|
账号ID | accountID | String | |
账号创建时间 | creationTime | long | 时间戳 |
姓名 | name | String | |
性别 | sex | int | 0未知 1男 2女/不能为其他数字,默认为0 |
是否付费 | paid | int | 0未知 1是 2否/不能为其他数字,默认为0 |
出生年月 | birthdate | long | yyyyMMdd格式校验 |
手机号码 | phone | String | 手机号码校验 |
电子邮件 | String | 邮箱格式校验 | |
新浪微博ID | weiboID | String | |
微信ID | wechatID | String | |
QQ ID | qqID | String | |
自定义维度 | extra | key-value | key只能为字符串,value只能为字符串或数字类型或null类型; 当value设置为空类型时,将该key从服务器上删除 key不能使用极光内部namespace(符号$) |
注意: iOS10+ 可以通过该方法来设置推送是否前台展示,是否触发声音,是否设置应用角标 badge
Janalytics janalytics = new Janalytics();
janalytics.identifyAccount(accountId,creationTime: createTime,sex: sex,paid: paid,birthdate: birthdate,phone: phone,email: email,name: name,extMap: extMap).then((map){
var code = map["code"];
var msg = map["msg"];
print("result code = $code msg= $msg");
});
解绑当前用户信息
Janalytics janalytics = new Janalytics();
janalytics.detachAccount().then((map){
var code = map["code"];
var msg = map["msg"];
print("result code = $code msg= $msg");
});
code | message | 备注 |
---|---|---|
0 | 调用成功 | |
1001 | account_id can not be empty | accountID为关键参数,不能填写null或"" |
1002 | detach failed because account_id is empty | 当前没有绑定accountID时调用了解绑接口 |
1003 | operation is too busy | 10s内请求频率不能超过30次 |
1004 | account_id is too long, please make it less than 255 characters | accountID长度不能超过255字符 |
1005 | failed, please call JAnalyticsInterface.init(context) first | SDK尚未初始化,应先调用init()方法 |
1101 | the value of $sex should be in [0,2] | 0未知 1男 2女/不能为其他数字,默认为0 |
1101 | the value of $birthdate should be date as yyyyMMdd | yyyyMMdd格式校验 |
1101 | the value of $paid should be in [0,2] | 0未知 1是 2否/不能为其他数字,默认为0 |
1101 | the value of $phone is NOT a phone number | 电话号码格式校验(含国际号码) |
1101 | the value of $email is NOT email address | 邮箱格式校验 |
1101 | the key={key} in extra is invalid | 自定义属性key不能为空,不能使用极光内部namespace(符号$) |
1101 | the value of {key} in extra should be String or Number | 自定义属性value只能为字符串或数字类型或null类型 |