Skip to content

Commit 80d754f

Browse files
author
weiqiangliu
committed
Release 0.1.0
1 parent cf37935 commit 80d754f

File tree

11 files changed

+922
-433
lines changed

11 files changed

+922
-433
lines changed

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ SensorsAnalytics SDK 是国内第一家开源商用版用户行为采集 SDK,
1515

1616
## 版本更新记录
1717

18-
请参见 [release 发版记录](https://github.com/sensorsdata/sa-sdk-cpp/releases)
18+
请参见 [release 发版记录](https://github.com/sensorsdata/uni-app-native-plugin/releases)
1919

2020
## 讨论
2121

@@ -38,7 +38,7 @@ SensorsAnalytics SDK 是国内第一家开源商用版用户行为采集 SDK,
3838

3939
## License
4040

41-
Copyright 2015-2021 Sensors Data Inc.
41+
Copyright 2015-2022 Sensors Data Inc.
4242

4343
Licensed under the Apache License, Version 2.0 (the "License");
4444
you may not use this file except in compliance with the License.

android/SensorsdataUniPlugin/build.gradle

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ dependencies {
3434
compileOnly 'com.alibaba:fastjson:1.1.46.android'
3535

3636
compileOnly fileTree(dir: 'libs', include: ['uniapp-v8-release.aar'])
37-
compileOnly 'com.sensorsdata.analytics.android:SensorsAnalyticsSDK:5.4.5'
37+
compileOnly 'com.sensorsdata.analytics.android:SensorsAnalyticsSDK:6.6.0'
3838
compileOnly 'com.alibaba:fastjson:1.1.46.android'
39-
compileOnly 'com.sensorsdata.analytics.android:SensorsFocusSDK:0.4.5'
39+
compileOnly 'com.sensorsdata.analytics.android:SensorsFocusSDK:0.5.5'
4040
}
Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
package com.sensorsdata.uniapp;
2+
3+
import static com.sensorsdata.uniapp.UniSensorsAnalyticsModule.LOG_TAG;
4+
5+
import android.content.Context;
6+
import android.util.Log;
7+
8+
import com.alibaba.fastjson.JSONObject;
9+
import com.sensorsdata.analytics.android.sdk.SAConfigOptions;
10+
import com.sensorsdata.analytics.android.sdk.SensorsDataAPI;
11+
import com.sensorsdata.uniapp.property.PluginVersionInterceptor;
12+
import com.sensorsdata.uniapp.property.UniPropertyManager;
13+
import com.sensorsdata.uniapp.util.JSONUtils;
14+
15+
public class UniSensorsAnalyticsHelper {
16+
17+
public static void initSDK(Context context, JSONObject jsonConfig) {
18+
SAConfigOptions configOptions = null;
19+
boolean enableNetworkRequest = true;
20+
int session = 30000;
21+
try {
22+
if (jsonConfig != null) {
23+
String serverUrl = jsonConfig.getString("server_url");
24+
configOptions = new SAConfigOptions(serverUrl);
25+
configOptions.enableLog(JSONUtils.optObject(jsonConfig, "show_log", Boolean.class, false));
26+
JSONObject appConfig = jsonConfig.getJSONObject("app");
27+
if (appConfig != null) {
28+
configOptions.setRemoteConfigUrl(appConfig.getString("remote_config_url"))
29+
.setAutoTrackEventType(JSONUtils.optObject(appConfig, "auto_track", Integer.class, 0))
30+
.setFlushInterval(JSONUtils.optObject(appConfig, "flush_interval", Integer.class, 15000))
31+
.setFlushBulkSize(JSONUtils.optObject(appConfig, "flush_bulkSize", Integer.class, 100))
32+
.setNetworkTypePolicy(JSONUtils.optObject(appConfig, "flush_network_policy", Integer.class, SensorsDataAPI.NetworkType.TYPE_ALL))
33+
.enableAutoAddChannelCallbackEvent(appConfig.getBooleanValue("add_channel_callback_event"))
34+
.enableEncrypt(appConfig.getBooleanValue("encrypt"));
35+
boolean enableJavaScriptBridge = appConfig.getBooleanValue("javascript_bridge");
36+
JSONObject androidConfig = appConfig.getJSONObject("android");
37+
if (androidConfig != null) {
38+
session = JSONUtils.optObject(androidConfig, "session_interval_time", Integer.class, 30000);
39+
configOptions.setMaxCacheSize(JSONUtils.optObject(androidConfig, "max_cache_size", Integer.class, 32) * 1024 * 1024);
40+
enableNetworkRequest = JSONUtils.optObject(androidConfig, "request_network", Boolean.class, true);
41+
if (androidConfig.getBooleanValue("mp_process_flush")) {
42+
configOptions.enableSubProcessFlushData();
43+
}
44+
if (enableJavaScriptBridge) {
45+
configOptions.enableJavaScriptBridge(androidConfig.getBooleanValue("support_jellybean"));
46+
}
47+
} else {
48+
if (enableJavaScriptBridge) {
49+
configOptions.enableJavaScriptBridge(false);
50+
}
51+
}
52+
}
53+
}
54+
} catch (Exception e) {
55+
Log.i(LOG_TAG, "Parse SAConfigOption Exception");
56+
}
57+
if (configOptions == null) {
58+
configOptions = new SAConfigOptions("");
59+
}
60+
UniPropertyManager.addInterceptor(new PluginVersionInterceptor());
61+
SensorsDataAPI.startWithConfigOptions(context, configOptions);
62+
SensorsDataAPI.sharedInstance().setSessionIntervalTime(session);
63+
SensorsDataAPI.sharedInstance().enableNetworkRequest(enableNetworkRequest);
64+
Log.i(LOG_TAG, "SensorsAnalytics SDK init success!");
65+
}
66+
}

android/SensorsdataUniPlugin/src/main/java/com/sensorsdata/uniapp/UniSensorsAnalyticsModule.java

Lines changed: 39 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -17,14 +17,18 @@
1717

1818
package com.sensorsdata.uniapp;
1919

20+
import android.text.TextUtils;
2021
import android.util.Log;
2122

2223
import com.alibaba.fastjson.JSONArray;
2324
import com.alibaba.fastjson.JSONObject;
2425
import com.sensorsdata.analytics.android.sdk.SensorsDataAPI;
26+
import com.sensorsdata.analytics.android.sdk.SensorsDataAPIEmptyImplementation;
27+
import com.sensorsdata.sf.core.SFConfigOptions;
2528
import com.sensorsdata.sf.core.SensorsFocusAPI;
2629
import com.sensorsdata.uniapp.property.UniPropertyManager;
2730
import com.sensorsdata.uniapp.sf.UniCampaignListener;
31+
import com.sensorsdata.uniapp.sf.UniPopupListener;
2832
import com.sensorsdata.uniapp.util.JSONUtils;
2933

3034
import java.util.Map;
@@ -35,10 +39,10 @@
3539

3640
public class UniSensorsAnalyticsModule extends UniDestroyableModule {
3741

38-
public static final String VERSION = "0.0.4";
42+
public static final String VERSION = "0.1.0";
3943

4044
private static final String MODULE_NAME = "UniSensorsAnalyticsModule";
41-
private static final String LOG_TAG = "SA.UniModule";
45+
public static final String LOG_TAG = "SA.UniModule";
4246

4347
/**
4448
* 调用 track 接口,追踪一个带有属性的事件
@@ -404,11 +408,7 @@ public void flush() {
404408
*/
405409
@UniJSMethod()
406410
public void enableDataCollect() {
407-
try {
408-
SensorsDataAPI.sharedInstance().enableDataCollect();
409-
} catch (Exception e) {
410-
Log.i(LOG_TAG, e.getMessage());
411-
}
411+
412412
}
413413

414414
/**
@@ -776,6 +776,38 @@ public void enablePopup() {
776776
}
777777
}
778778

779+
@UniJSMethod
780+
public void initSDK(JSONObject jsonConfig) {
781+
if (SensorsDataAPI.sharedInstance() instanceof SensorsDataAPIEmptyImplementation) {
782+
UniSensorsAnalyticsHelper.initSDK(mWXSDKInstance.getContext(), jsonConfig);
783+
}
784+
}
785+
786+
@UniJSMethod
787+
public void popupInit(JSONObject jsonConfig) {
788+
try {
789+
if (jsonConfig != null) {
790+
SFConfigOptions sfConfigOptions;
791+
String sfBaseUrl = jsonConfig.getString("api_base_url");
792+
if (TextUtils.isEmpty(sfBaseUrl)) {
793+
return;
794+
}
795+
sfConfigOptions = new SFConfigOptions(sfBaseUrl);
796+
try {
797+
sfConfigOptions.enablePopup(JSONUtils.optObject(jsonConfig, "enable_popup", Boolean.class, true));
798+
} catch (Exception ignored) {
799+
800+
}
801+
SensorsFocusAPI.startWithConfigOptions(mWXSDKInstance.getContext(), sfConfigOptions
802+
.setPopupListener(new UniPopupListener())
803+
.setCampaignListener(new UniCampaignListener()));
804+
}
805+
Log.i(LOG_TAG, "SensorsFocus SDK init success!");
806+
} catch (Exception ignored) {
807+
Log.i(LOG_TAG, "SensorsFocus SDK init failed!");
808+
}
809+
}
810+
779811
@Override
780812
public void destroy() {
781813
}

android/SensorsdataUniPlugin/src/main/java/com/sensorsdata/uniapp/UniSensorsAnalyticsProxy.java

Lines changed: 0 additions & 193 deletions
This file was deleted.

android/SensorsdataUniPlugin/src/main/java/com/sensorsdata/uniapp/util/JSONUtils.java

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,4 +62,17 @@ public static Set convertToSet(com.alibaba.fastjson.JSONArray fastJson) {
6262
return JSON.parseObject(fastJson.toString(), new TypeReference<Set<String>>() {
6363
});
6464
}
65+
66+
public static <T> T optObject(com.alibaba.fastjson.JSONObject object, String key, Class<T> clazz, T defaultValue) {
67+
try {
68+
T value = object.getObject(key, clazz);
69+
if (value == null) {
70+
value = defaultValue;
71+
}
72+
return value;
73+
} catch (Exception ignored) {
74+
75+
}
76+
return defaultValue;
77+
}
6578
}

0 commit comments

Comments
 (0)