Skip to content

Commit 030a7dc

Browse files
author
weiqiangliu
committed
Release 1.0.6
1 parent ac5d9ae commit 030a7dc

File tree

9 files changed

+853
-39
lines changed

9 files changed

+853
-39
lines changed

.idea/workspace.xml

Lines changed: 1 addition & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
## 1.0.6
2+
3+
* 同步原生 SDK 接口
4+
15
## 1.0.5
26

37
* 增加合规功能

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
```yml
1818
dependencies:
1919
# 添加神策 flutter plugin
20-
sensors_analytics_flutter_plugin: ^1.0.5
20+
sensors_analytics_flutter_plugin: ^1.0.6
2121
```
2222
2323
执行 flutter packages get 命令安装插件

android/src/main/java/com/sensorsdata/analytics/sensorsanalyticsflutterplugin/SensorsAnalyticsFlutterPlugin.java

Lines changed: 213 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,9 @@
1010
import org.json.JSONObject;
1111

1212
import java.util.Collection;
13+
import java.util.HashMap;
1314
import java.util.HashSet;
15+
import java.util.Iterator;
1416
import java.util.List;
1517
import java.util.Map;
1618

@@ -44,14 +46,80 @@ public void onMethodCall(@NonNull MethodCall call, @NonNull Result result) {
4446
try {
4547
List list = (List) call.arguments;
4648
switch (call.method) {
49+
case "setServerUrl":
50+
setServerUrl(list);
51+
break;
52+
case "getPresetProperties":
53+
getPresetProperties(result);
54+
break;
55+
case "enableLog":
56+
enableLog(list);
57+
break;
58+
case "setFlushNetworkPolicy":
59+
setFlushNetworkPolicy(list);
60+
break;
61+
case "setFlushInterval":
62+
setFlushInterval(list);
63+
break;
64+
case "getFlushInterval":
65+
getFlushInterval(result);
66+
break;
67+
case "getFlushBulkSize":
68+
getFlushBulkSize(result);
69+
break;
70+
case "setFlushBulkSize":
71+
setFlushBulkSize(list);
72+
break;
73+
case "getAnonymousId":
74+
getAnonymousId(result);
75+
break;
76+
case "getLoginId":
77+
getLoginId(result);
78+
break;
79+
case "identify":
80+
identify(list);
81+
break;
82+
case "trackAppInstall":
83+
trackAppInstall(list);
84+
break;
85+
case "flush":
86+
flush();
87+
break;
88+
case "deleteAll":
89+
deleteAll();
90+
break;
91+
case "getSuperProperties":
92+
getSuperProperties(result);
93+
break;
94+
case "enableNetworkRequest":
95+
enableNetworkRequest(list);
96+
break;
97+
case "itemSet":
98+
itemSet(list);
99+
break;
100+
case "itemDelete":
101+
itemDelete(list);
102+
break;
103+
case "isNetworkRequestEnable":
104+
isNetworkRequestEnable(result);
105+
break;
47106
case "track":
48107
track(list);
49108
break;
50109
case "trackInstallation":
51110
trackInstallation(list);
52111
break;
53112
case "trackTimerStart":
54-
trackTimerStart(list);
113+
trackTimerStart(list, result);
114+
break;
115+
case "trackTimerPause":
116+
trackTimerPause(list);
117+
break;
118+
case "trackTimerResume":
119+
trackTimerResume(list);
120+
break;
121+
case "removeTimer":
122+
removeTimer(list);
55123
break;
56124
case "trackTimerEnd":
57125
trackTimerEnd(list);
@@ -122,6 +190,121 @@ public void onDetachedFromEngine(@NonNull FlutterPluginBinding binding) {
122190
channel.setMethodCallHandler(null);
123191
}
124192

193+
private void isNetworkRequestEnable(Result result) {
194+
result.success(SensorsDataAPI.sharedInstance().isNetworkRequestEnable());
195+
}
196+
197+
private void itemDelete(List list) {
198+
SensorsDataAPI.sharedInstance().itemDelete((String) list.get(0), (String) list.get(1));
199+
}
200+
201+
private void itemSet(List list) {
202+
SensorsDataAPI.sharedInstance().itemSet((String) list.get(0), (String) list.get(1), assertProperties2(list.get(2)));
203+
}
204+
205+
private void enableNetworkRequest(List list) {
206+
SensorsDataAPI.sharedInstance().enableNetworkRequest((Boolean) list.get(0));
207+
}
208+
209+
private void getSuperProperties(Result result) {
210+
JSONObject jsonObject = SensorsDataAPI.sharedInstance().getSuperProperties();
211+
if (jsonObject != null) {
212+
Iterator<String> keys = jsonObject.keys();
213+
Map<String, Object> map = new HashMap<>();
214+
while (keys.hasNext()) {
215+
String key = keys.next();
216+
Object value = jsonObject.opt(key);
217+
map.put(key, value);
218+
}
219+
result.success(map);
220+
} else {
221+
result.success(null);
222+
}
223+
}
224+
225+
private void deleteAll() {
226+
SensorsDataAPI.sharedInstance().deleteAll();
227+
}
228+
229+
private void flush() {
230+
SensorsDataAPI.sharedInstance().flush();
231+
}
232+
233+
private void trackAppInstall(List list) {
234+
SensorsDataAPI.sharedInstance().trackAppInstall(assertProperties2(list.get(0)), (Boolean) list.get(1));
235+
}
236+
237+
private void identify(List list) {
238+
SensorsDataAPI.sharedInstance().identify((String) list.get(0));
239+
}
240+
241+
private void getLoginId(Result result) {
242+
result.success(SensorsDataAPI.sharedInstance().getLoginId());
243+
}
244+
245+
private void getAnonymousId(Result result) {
246+
result.success(SensorsDataAPI.sharedInstance().getAnonymousId());
247+
}
248+
249+
private void getFlushBulkSize(Result result) {
250+
result.success(SensorsDataAPI.sharedInstance().getFlushBulkSize());
251+
}
252+
253+
private void setFlushBulkSize(List list) {
254+
SensorsDataAPI.sharedInstance().setFlushBulkSize((Integer) list.get(0));
255+
}
256+
257+
private void getFlushInterval(Result result) {
258+
result.success(SensorsDataAPI.sharedInstance().getFlushInterval());
259+
}
260+
261+
/**
262+
* 设置两次数据发送的最小时间间隔
263+
*/
264+
private void setFlushInterval(List list) {
265+
SensorsDataAPI.sharedInstance().setFlushInterval((Integer) list.get(0));
266+
}
267+
268+
/**
269+
* 设置 flush 时网络发送策略,默认 3G、4G、WI-FI 环境下都会尝试 flush
270+
*/
271+
private void setFlushNetworkPolicy(List list) {
272+
SensorsDataAPI.sharedInstance().setFlushNetworkPolicy((Integer) list.get(0));
273+
}
274+
275+
/**
276+
* 设置是否开启 log
277+
*/
278+
private void enableLog(List list) {
279+
SensorsDataAPI.sharedInstance().enableLog((Boolean) list.get(0));
280+
}
281+
282+
/**
283+
* 获取预制属性
284+
*/
285+
private void getPresetProperties(Result result) {
286+
JSONObject jsonObject = SensorsDataAPI.sharedInstance().getPresetProperties();
287+
if (jsonObject != null) {
288+
Iterator<String> keys = jsonObject.keys();
289+
Map<String, Object> map = new HashMap<>();
290+
while (keys.hasNext()) {
291+
String key = keys.next();
292+
Object value = jsonObject.opt(key);
293+
map.put(key, value);
294+
}
295+
result.success(map);
296+
} else {
297+
result.success(null);
298+
}
299+
}
300+
301+
/**
302+
* set server url
303+
*/
304+
private void setServerUrl(List list) {
305+
SensorsDataAPI.sharedInstance().setServerUrl((String) list.get(0), (Boolean) list.get(1));
306+
}
307+
125308
/**
126309
* trackInstallation 记录激活事件
127310
*/
@@ -231,8 +414,21 @@ private void clearTrackTimer() {
231414
/**
232415
* trackTimerStart 计时开始
233416
*/
234-
private void trackTimerStart(List list) {
235-
SensorsDataAPI.sharedInstance().trackTimerStart(assertEventName((String) list.get(0)));
417+
private void trackTimerStart(List list, Result result) {
418+
String tmp = SensorsDataAPI.sharedInstance().trackTimerStart(assertEventName((String) list.get(0)));
419+
result.success(tmp);
420+
}
421+
422+
private void trackTimerPause(List list) {
423+
SensorsDataAPI.sharedInstance().trackTimerPause(assertEventName((String) list.get(0)));
424+
}
425+
426+
private void trackTimerResume(List list) {
427+
SensorsDataAPI.sharedInstance().trackTimerResume(assertEventName((String) list.get(0)));
428+
}
429+
430+
private void removeTimer(List list) {
431+
SensorsDataAPI.sharedInstance().removeTimer(assertEventName((String) list.get(0)));
236432
}
237433

238434
/**
@@ -270,21 +466,21 @@ private void clearSuperProperties() {
270466
/**
271467
* 保存用户推送 ID 到用户表
272468
*/
273-
private void profilePushId(List list){
274-
SensorsDataAPI.sharedInstance().profilePushId((String)list.get(0), (String)list.get(1));
469+
private void profilePushId(List list) {
470+
SensorsDataAPI.sharedInstance().profilePushId((String) list.get(0), (String) list.get(1));
275471
}
276472

277473
/**
278474
* 删除用户设置的 pushId
279475
*/
280-
private void profileUnsetPushId(List list){
281-
SensorsDataAPI.sharedInstance().profileUnsetPushId((String)list.get(0));
476+
private void profileUnsetPushId(List list) {
477+
SensorsDataAPI.sharedInstance().profileUnsetPushId((String) list.get(0));
282478
}
283479

284480
/**
285481
* 开启数据采集
286482
*/
287-
private void enableDataCollect(){
483+
private void enableDataCollect() {
288484
SensorsDataAPI.sharedInstance().enableDataCollect();
289485
}
290486

@@ -297,6 +493,15 @@ private JSONObject assertProperties(Map map) {
297493
}
298494
}
299495

496+
private JSONObject assertProperties2(Object map) {
497+
if (map != null) {
498+
return new JSONObject((Map) map);
499+
} else {
500+
SALog.d(TAG, "传入的属性为空");
501+
return null;
502+
}
503+
}
504+
300505
private String assertEventName(String eventName) {
301506
if (TextUtils.isEmpty(eventName)) {
302507
SALog.d(TAG, "事件名为空,请检查代码");

0 commit comments

Comments
 (0)