Skip to content

Commit cf1efea

Browse files
author
weiqiangliu
committed
Release 2.2.5
1 parent e86d975 commit cf1efea

File tree

11 files changed

+286
-89
lines changed

11 files changed

+286
-89
lines changed

RNSensorsAnalyticsModule.podspec

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11

22
Pod::Spec.new do |s|
33
s.name = "RNSensorsAnalyticsModule"
4-
s.version = "2.2.4"
4+
s.version = "2.2.5"
55
s.summary = "The official React Native SDK of Sensors Analytics."
66
s.description = <<-DESC
77
神策分析 RN 组件

android/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,5 +40,5 @@ dependencies {
4040
compileOnly 'com.facebook.react:react-native:+'
4141

4242
//添加 Sensors Analytics SDK 依赖
43-
compileOnly 'com.sensorsdata.analytics.android:SensorsAnalyticsSDK:6.2.1'
43+
compileOnly 'com.sensorsdata.analytics.android:SensorsAnalyticsSDK:6.3.5'
4444
}

android/src/main/java/com/sensorsdata/analytics/RNSensorsAnalyticsModule.java

Lines changed: 107 additions & 62 deletions
Original file line numberDiff line numberDiff line change
@@ -29,9 +29,12 @@
2929
import com.facebook.react.bridge.ReadableArray;
3030
import com.facebook.react.bridge.ReadableMap;
3131
import com.facebook.react.bridge.WritableMap;
32+
import com.sensorsdata.analytics.android.sdk.SAConfigOptions;
33+
import com.sensorsdata.analytics.android.sdk.SALog;
3234
import com.sensorsdata.analytics.android.sdk.SensorsDataAPI;
3335
import com.sensorsdata.analytics.property.RNPropertyManager;
3436
import com.sensorsdata.analytics.utils.RNUtils;
37+
import com.sensorsdata.analytics.utils.VersionUtils;
3538

3639
import org.json.JSONObject;
3740

@@ -464,7 +467,7 @@ public void getDistinctId(Callback successCallback, Callback errorCallback) {
464467
*/
465468
@ReactMethod
466469
public void getDistinctIdPromise(Promise promise) {
467-
if(promise == null){
470+
if (promise == null) {
468471
return;
469472
}
470473
try {
@@ -493,7 +496,7 @@ public void getDistinctIdPromise(Promise promise) {
493496
*/
494497
@ReactMethod
495498
public void getAnonymousIdPromise(Promise promise) {
496-
if(promise == null){
499+
if (promise == null) {
497500
return;
498501
}
499502
try {
@@ -630,7 +633,6 @@ public void identify(String anonymousId) {
630633

631634
/**
632635
* 导出 trackTimerPause 方法给 RN 使用.
633-
*
634636
* <p>暂停事件计时器,计时单位为秒。
635637
*
636638
* @param eventName 事件的名称
@@ -646,12 +648,11 @@ public void trackTimerPause(String eventName) {
646648
}
647649

648650
/**
649-
* 导出 trackTimerResume 方法给 RN 使用.
650-
*
651-
* <p>恢复事件计时器,计时单位为秒。
652-
*
653-
* @param eventName 事件的名称
654-
*/
651+
* 导出 trackTimerResume 方法给 RN 使用.
652+
* <p>恢复事件计时器,计时单位为秒。
653+
*
654+
* @param eventName 事件的名称
655+
*/
655656
@ReactMethod
656657
public void trackTimerResume(String eventName) {
657658
try {
@@ -663,13 +664,13 @@ public void trackTimerResume(String eventName) {
663664
}
664665

665666
/**
666-
* 保存用户推送 ID 到用户表
667-
*
668-
* @param pushTypeKey 属性名称(例如 jgId)
669-
* @param pushId 推送 ID
670-
* <p>使用 profilePushId("jgId", pushId) 例如极光 pushId
671-
* 获取方式:JPushModule.getRegistrationID(callback)
672-
*/
667+
* 保存用户推送 ID 到用户表
668+
*
669+
* @param pushTypeKey 属性名称(例如 jgId)
670+
* @param pushId 推送 ID
671+
* <p>使用 profilePushId("jgId", pushId) 例如极光 pushId
672+
* 获取方式:JPushModule.getRegistrationID(callback)
673+
*/
673674
@ReactMethod
674675
public void profilePushId(String pushTypeKey, String pushId) {
675676
try {
@@ -681,10 +682,10 @@ public void profilePushId(String pushTypeKey, String pushId) {
681682
}
682683

683684
/**
684-
* 删除用户设置的 pushId
685-
*
686-
* @param pushTypeKey 属性名称(例如 jgId)
687-
*/
685+
* 删除用户设置的 pushId
686+
*
687+
* @param pushTypeKey 属性名称(例如 jgId)
688+
*/
688689
@ReactMethod
689690
public void profileUnsetPushId(String pushTypeKey) {
690691
try {
@@ -709,10 +710,10 @@ public void resetAnonymousId() {
709710
}
710711

711712
/**
712-
* 设置当前 serverUrl
713-
*
714-
* @param serverUrl 当前 serverUrl
715-
*/
713+
* 设置当前 serverUrl
714+
*
715+
* @param serverUrl 当前 serverUrl
716+
*/
716717
@ReactMethod
717718
public void setServerUrl(String serverUrl) {
718719
try {
@@ -724,12 +725,12 @@ public void setServerUrl(String serverUrl) {
724725
}
725726

726727
/**
727-
* 设置 item
728-
*
729-
* @param itemType item 类型
730-
* @param itemId item ID
731-
* @param properties item 相关属性
732-
*/
728+
* 设置 item
729+
*
730+
* @param itemType item 类型
731+
* @param itemId item ID
732+
* @param properties item 相关属性
733+
*/
733734
@ReactMethod
734735
public void itemSet(final String itemType, final String itemId, ReadableMap properties) {
735736
try {
@@ -741,11 +742,11 @@ public void itemSet(final String itemType, final String itemId, ReadableMap prop
741742
}
742743

743744
/**
744-
* 删除 item
745-
*
746-
* @param itemType item 类型
747-
* @param itemId item ID
748-
*/
745+
* 删除 item
746+
*
747+
* @param itemType item 类型
748+
* @param itemId item ID
749+
*/
749750
@ReactMethod
750751
public void itemDelete(final String itemType, final String itemId) {
751752
try {
@@ -761,7 +762,7 @@ public void itemDelete(final String itemType, final String itemId) {
761762
*/
762763
@ReactMethod
763764
public void getSuperPropertiesPromise(Promise promise) {
764-
if(promise == null){
765+
if (promise == null) {
765766
return;
766767
}
767768
try {
@@ -782,7 +783,7 @@ public void getSuperPropertiesPromise(Promise promise) {
782783
*/
783784
@ReactMethod
784785
public void getPresetPropertiesPromise(Promise promise) {
785-
if(promise == null){
786+
if (promise == null) {
786787
return;
787788
}
788789
try {
@@ -799,10 +800,10 @@ public void getPresetPropertiesPromise(Promise promise) {
799800
}
800801

801802
/**
802-
* 获取当前用户的 loginId 若调用前未调用 {@link #login(String)} 设置用户的 loginId,会返回 null
803-
*
804-
* @return 当前用户的 loginId
805-
*/
803+
* 获取当前用户的 loginId 若调用前未调用 {@link #login(String)} 设置用户的 loginId,会返回 null
804+
*
805+
* @return 当前用户的 loginId
806+
*/
806807
@ReactMethod
807808
public void getLoginIdPromise(Promise promise) {
808809
if (promise == null) {
@@ -818,13 +819,12 @@ public void getLoginIdPromise(Promise promise) {
818819
}
819820

820821
/**
821-
* 设置 App 切换到后台与下次事件的事件间隔
822-
* 默认值为 30*1000 毫秒
823-
* 若 App 在后台超过设定事件,则认为当前 Session 结束,发送 $AppEnd 事件
824-
*
825-
* @platform Android
826-
* @param sessionIntervalTime int
827-
*/
822+
* 设置 App 切换到后台与下次事件的事件间隔
823+
* 默认值为 30*1000 毫秒
824+
* 若 App 在后台超过设定事件,则认为当前 Session 结束,发送 $AppEnd 事件
825+
*
826+
* @param sessionIntervalTime int
827+
*/
828828
@ReactMethod
829829
public void setSessionIntervalTime(int sessionIntervalTime) {
830830
SensorsDataAPI.sharedInstance().setSessionIntervalTime(sessionIntervalTime);
@@ -835,7 +835,6 @@ public void setSessionIntervalTime(int sessionIntervalTime) {
835835
* 默认值为 30*1000 毫秒
836836
* 若 App 在后台超过设定事件,则认为当前 Session 结束,发送 $AppEnd 事件
837837
*
838-
* @platform Android
839838
* @return 返回设置的 SessionIntervalTime ,默认是 30s
840839
*/
841840
@ReactMethod
@@ -858,7 +857,7 @@ public void getSessionIntervalTimePromise(Promise promise) {
858857
* @return true: 开启 AutoTrack; false:没有开启 AutoTrack
859858
*/
860859
@ReactMethod
861-
public void isAutoTrackEnabledPromise(Promise promise){
860+
public void isAutoTrackEnabledPromise(Promise promise) {
862861
if (promise == null) {
863862
return;
864863
}
@@ -877,7 +876,7 @@ public void isAutoTrackEnabledPromise(Promise promise){
877876
* @return true 代表开启了可视化全埋点, false 代表关闭了可视化全埋点
878877
*/
879878
@ReactMethod
880-
public void isVisualizedAutoTrackEnabledPromise(Promise promise){
879+
public void isVisualizedAutoTrackEnabledPromise(Promise promise) {
881880
if (promise == null) {
882881
return;
883882
}
@@ -896,7 +895,7 @@ public void isVisualizedAutoTrackEnabledPromise(Promise promise){
896895
* @return true 代表开启了点击图,false 代表关闭了点击图
897896
*/
898897
@ReactMethod
899-
public void isHeatMapEnabledPromise(Promise promise){
898+
public void isHeatMapEnabledPromise(Promise promise) {
900899
if (promise == null) {
901900
return;
902901
}
@@ -921,7 +920,7 @@ public void isHeatMapEnabledPromise(Promise promise){
921920
* 例:若需要开启 4G 5G 发送数据,则需要设置 4 + 16 = 20
922921
*/
923922
@ReactMethod
924-
public void setFlushNetworkPolicy(int networkType){
923+
public void setFlushNetworkPolicy(int networkType) {
925924
try {
926925
SensorsDataAPI.sharedInstance().setFlushNetworkPolicy(networkType);
927926
} catch (Exception e) {
@@ -933,11 +932,10 @@ public void setFlushNetworkPolicy(int networkType){
933932
/**
934933
* 设置是否允许请求网络,默认是 true
935934
*
936-
* @platform Android
937935
* @param isRequest boolean
938936
*/
939937
@ReactMethod
940-
public void enableNetworkRequest(boolean isRequest){
938+
public void enableNetworkRequest(boolean isRequest) {
941939
try {
942940
SensorsDataAPI.sharedInstance().enableNetworkRequest(isRequest);
943941
} catch (Exception e) {
@@ -949,11 +947,10 @@ public void enableNetworkRequest(boolean isRequest){
949947
/**
950948
* 是否允许请求网络,默认是 true
951949
*
952-
* @platform Android
953950
* @return 是否允许请求网络
954951
*/
955952
@ReactMethod
956-
public void isNetworkRequestEnablePromise(Promise promise){
953+
public void isNetworkRequestEnablePromise(Promise promise) {
957954
if (promise == null) {
958955
return;
959956
}
@@ -987,12 +984,16 @@ public void trackAppInstall(ReadableMap properties) {
987984
* 开启数据采集
988985
*/
989986
@ReactMethod
987+
@Deprecated
990988
public void enableDataCollect() {
991-
try {
992-
SensorsDataAPI.sharedInstance().enableDataCollect();
993-
} catch (Exception e) {
994-
e.printStackTrace();
995-
Log.e(LOGTAG, e.toString() + "");
989+
if (!VersionUtils.checkSAVersion("6.4.0")) {
990+
try {
991+
SensorsDataAPI.sharedInstance().enableDataCollect();
992+
SALog.i(LOGTAG, "enableDataCollect() 方法已在 「6.4.0」版本删除!可升级致该版本后使用延迟初始化方案");
993+
} catch (Exception e) {
994+
e.printStackTrace();
995+
Log.e(LOGTAG, e.toString() + "");
996+
}
996997
}
997998
}
998999

@@ -1027,4 +1028,48 @@ public void unbind(String key, String value) {
10271028
Log.e(LOGTAG, e.toString() + "");
10281029
}
10291030
}
1031+
1032+
@ReactMethod
1033+
public void init(ReadableMap config) {
1034+
if (getCurrentActivity() == null) {
1035+
return;
1036+
}
1037+
try {
1038+
JSONObject configJson = RNUtils.convertToJSONObject(config);
1039+
SAConfigOptions saConfigOptions;
1040+
if (configJson == null) {
1041+
saConfigOptions = new SAConfigOptions("");
1042+
} else {
1043+
saConfigOptions = new SAConfigOptions(configJson.optString("server_url"));
1044+
saConfigOptions.enableLog(configJson.optBoolean("show_log"))
1045+
.enableEncrypt(configJson.optBoolean("encrypt"))
1046+
.setAutoTrackEventType(configJson.optInt("auto_track", 0))
1047+
.setFlushBulkSize(configJson.optInt("flush_bulksize", 100))
1048+
.setFlushInterval(configJson.optInt("flush_interval", 15000));
1049+
JSONObject androidConfig = configJson.optJSONObject("android");
1050+
boolean javascriptBridge = configJson.optBoolean("javascript_bridge", false);
1051+
boolean isSupportJellybean = false;
1052+
if (androidConfig != null && androidConfig.length() > 0) {
1053+
saConfigOptions.setMaxCacheSize(androidConfig.optLong("max_cache_size", 32 * 1024 * 1024));
1054+
if (androidConfig.optBoolean("sub_process_flush", false)) {
1055+
saConfigOptions.enableSubProcessFlushData();
1056+
}
1057+
isSupportJellybean = androidConfig.optBoolean("jellybean", false);
1058+
}
1059+
if (javascriptBridge) {
1060+
saConfigOptions.enableJavaScriptBridge(isSupportJellybean);
1061+
}
1062+
JSONObject visualizedConfig = configJson.optJSONObject("visualized");
1063+
if (visualizedConfig != null && visualizedConfig.length() > 0) {
1064+
saConfigOptions.enableVisualizedAutoTrack(visualizedConfig.optBoolean("auto_track", false));
1065+
saConfigOptions.enableVisualizedProperties(visualizedConfig.optBoolean("properties", false));
1066+
}
1067+
saConfigOptions.enableHeatMap(configJson.optBoolean("heat_map", false));
1068+
}
1069+
SensorsDataAPI.startWithConfigOptions(getCurrentActivity(), saConfigOptions);
1070+
SALog.i(LOGTAG, "init success");
1071+
} catch (Exception e) {
1072+
SALog.i(LOGTAG, "SDK init failed:" + e.getMessage());
1073+
}
1074+
}
10301075
}

android/src/main/java/com/sensorsdata/analytics/RNSensorsAnalyticsPackage.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828
import java.util.List;
2929

3030
public class RNSensorsAnalyticsPackage implements ReactPackage {
31-
public static final String VERSION = "2.2.4";
31+
public static final String VERSION = "2.2.5";
3232

3333
@Override
3434
public List<NativeModule> createNativeModules(ReactApplicationContext reactContext) {

0 commit comments

Comments
 (0)