Skip to content

Commit ce71306

Browse files
author
weiqiangliu
committed
Release 2.3.2
1 parent 1035720 commit ce71306

File tree

11 files changed

+58
-46
lines changed

11 files changed

+58
-46
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.3.1"
4+
s.version = "2.3.2"
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.3.5'
43+
compileOnly 'com.sensorsdata.analytics.android:SensorsAnalyticsSDK:6.4.3'
4444
}

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

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -27,22 +27,21 @@
2727
import com.facebook.react.uimanager.events.EventDispatcher;
2828
import com.sensorsdata.analytics.android.sdk.SALog;
2929
import com.sensorsdata.analytics.android.sdk.SensorsDataAPI;
30-
import com.sensorsdata.analytics.android.sdk.util.SensorsDataUtils;
3130
import com.sensorsdata.analytics.data.SAViewProperties;
3231
import com.sensorsdata.analytics.property.RNPropertyManager;
3332
import com.sensorsdata.analytics.utils.RNTouchTargetHelper;
33+
import com.sensorsdata.analytics.utils.RNUtils;
3434
import com.sensorsdata.analytics.utils.RNViewUtils;
3535

3636
import org.json.JSONObject;
3737

3838
import java.lang.reflect.Field;
39-
import java.util.HashMap;
4039
import java.util.WeakHashMap;
4140

4241
public class RNAgent {
4342
private static final WeakHashMap jsTouchDispatcherViewGroupWeakHashMap = new WeakHashMap();
4443
private static SparseArray<SAViewProperties> viewPropertiesArray = new SparseArray();
45-
private static HashMap<String,Object> mDynamicSuperProperties;
44+
private static JSONObject mDynamicSuperProperties;
4645

4746
public static void handleTouchEvent(
4847
JSTouchDispatcher jsTouchDispatcher, MotionEvent event, EventDispatcher eventDispatcher) {
@@ -135,7 +134,7 @@ static void trackViewClick(int viewId) {
135134
return;
136135
}
137136
viewProperties.properties.remove("ignore");
138-
SensorsDataUtils.mergeJSONObject(viewProperties.properties, properties);
137+
RNUtils.mergeJSONObject(viewProperties.properties, properties);
139138
}
140139
SensorsDataAPI.sharedInstance().trackViewAppClick(clickView, RNPropertyManager.mergeProperty(properties, true));
141140
}
@@ -185,11 +184,11 @@ static void ignoreView() {
185184
}
186185
}
187186

188-
public static HashMap<String, Object> getDynamicSuperProperties(){
187+
public static JSONObject getDynamicSuperProperties(){
189188
return mDynamicSuperProperties;
190189
}
191190

192-
static void setDynamicSuperProperties(HashMap<String,Object> dynamicSuperProperties){
191+
static void setDynamicSuperProperties(JSONObject dynamicSuperProperties){
193192
mDynamicSuperProperties = dynamicSuperProperties;
194193
}
195194
}

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

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,6 @@
3434
import com.sensorsdata.analytics.android.sdk.SensorsDataAPI;
3535
import com.sensorsdata.analytics.property.RNPropertyManager;
3636
import com.sensorsdata.analytics.utils.RNUtils;
37-
import com.sensorsdata.analytics.utils.VersionUtils;
3837

3938
import org.json.JSONObject;
4039

@@ -986,15 +985,7 @@ public void trackAppInstall(ReadableMap properties) {
986985
@ReactMethod
987986
@Deprecated
988987
public void enableDataCollect() {
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-
}
997-
}
988+
SALog.i(LOGTAG, "enableDataCollect() 方法已在 「6.4.0」版本删除!可升级致该版本后使用延迟初始化方案");
998989
}
999990

1000991
/**

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.3.1";
31+
public static final String VERSION = "2.3.2";
3232

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

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

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,8 @@
2424
import com.facebook.react.bridge.ReactMethod;
2525
import com.facebook.react.bridge.ReadableMap;
2626
import com.sensorsdata.analytics.android.sdk.SALog;
27-
import com.sensorsdata.analytics.android.sdk.plugin.property.SensorsDataPropertyPluginManager;
27+
import com.sensorsdata.analytics.android.sdk.SensorsDataAPI;
28+
import com.sensorsdata.analytics.android.sdk.SensorsDataAPIEmptyImplementation;
2829
import com.sensorsdata.analytics.property.LibMethodInterceptor;
2930
import com.sensorsdata.analytics.property.PluginVersionInterceptor;
3031
import com.sensorsdata.analytics.property.RNDynamicPropertyPlugin;
@@ -110,14 +111,19 @@ public void saveViewProperties(int viewId, boolean clickable, ReadableMap viewPr
110111

111112
@ReactMethod
112113
public void setDynamicSuperProperties(ReadableMap dynamicSuperProperties) {
113-
if (!VersionUtils.checkSAVersion("6.2.1")) {
114+
RNAgent.setDynamicSuperProperties(RNUtils.convertToJSONObject(dynamicSuperProperties));
115+
}
116+
117+
@ReactMethod
118+
public void registerDynamicPlugin() {
119+
if (!VersionUtils.checkSAVersion("6.4.3")) {
120+
SALog.i(TAG, "请升级 Android SDK 至「6.4.3」及以上版本");
114121
return;
115122
}
116-
if (mDynamicPlugin == null) {
123+
if (mDynamicPlugin == null && !(SensorsDataAPI.sharedInstance() instanceof SensorsDataAPIEmptyImplementation)) {
117124
mDynamicPlugin = new RNDynamicPropertyPlugin();
118-
SensorsDataPropertyPluginManager.getInstance().registerPropertyPlugin(mDynamicPlugin);
125+
SensorsDataAPI.sharedInstance().registerPropertyPlugin(mDynamicPlugin);
119126
}
120-
RNAgent.setDynamicSuperProperties(RNUtils.convertToHashMap(dynamicSuperProperties));
121127
}
122128

123129
class SensorsDataLifecycleListener implements LifecycleEventListener {

android/src/main/java/com/sensorsdata/analytics/property/RNDynamicPropertyPlugin.java

Lines changed: 16 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,38 +1,36 @@
11
package com.sensorsdata.analytics.property;
22

3-
import com.sensorsdata.analytics.R;
43
import com.sensorsdata.analytics.RNAgent;
54
import com.sensorsdata.analytics.android.sdk.internal.beans.EventType;
65
import com.sensorsdata.analytics.android.sdk.plugin.property.SAPropertyPlugin;
76
import com.sensorsdata.analytics.android.sdk.plugin.property.SAPropertyPluginPriority;
7+
import com.sensorsdata.analytics.android.sdk.plugin.property.beans.SAPropertiesFetcher;
8+
import com.sensorsdata.analytics.android.sdk.plugin.property.beans.SAPropertyFilter;
9+
import com.sensorsdata.analytics.utils.RNUtils;
810

9-
import java.util.Map;
10-
import java.util.Set;
11+
import org.json.JSONObject;
1112

1213
public class RNDynamicPropertyPlugin extends SAPropertyPlugin {
13-
@Override
14-
public void appendProperties(Map<String, Object> properties) {
1514

15+
@Override
16+
public boolean isMatchedWithFilter(SAPropertyFilter filter) {
17+
return filter.getType() == EventType.TRACK
18+
|| filter.getType() == EventType.TRACK_ID_BIND
19+
|| filter.getType() == EventType.TRACK_ID_UNBIND
20+
|| filter.getType() == EventType.TRACK_SIGNUP;
1621
}
1722

1823
@Override
19-
public void appendDynamicProperties(Map<String, Object> dynamicProperties) {
20-
if (dynamicProperties != null) {
21-
Map<String, Object> properties = RNAgent.getDynamicSuperProperties();
22-
if (properties != null && !properties.isEmpty()) {
23-
dynamicProperties.putAll(properties);
24+
public void properties(SAPropertiesFetcher fetcher) {
25+
JSONObject properties = fetcher.getProperties();
26+
if (properties != null) {
27+
JSONObject dynamicProperties = RNAgent.getDynamicSuperProperties();
28+
if (dynamicProperties != null && dynamicProperties.length() > 0) {
29+
RNUtils.mergeJSONObject(dynamicProperties, properties);
2430
}
2531
}
2632
}
2733

28-
@Override
29-
public void eventTypeFilter(Set<EventType> eventTypeFilter) {
30-
eventTypeFilter.add(EventType.TRACK);
31-
eventTypeFilter.add(EventType.TRACK_ID_BIND);
32-
eventTypeFilter.add(EventType.TRACK_SIGNUP);
33-
eventTypeFilter.add(EventType.TRACK_ID_UNBIND);
34-
}
35-
3634
@Override
3735
public SAPropertyPluginPriority priority() {
3836
return SAPropertyPluginPriority.LOW;

android/src/main/java/com/sensorsdata/analytics/utils/RNUtils.java

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,15 +17,13 @@
1717

1818
package com.sensorsdata.analytics.utils;
1919

20-
import android.view.View;
2120
import com.facebook.react.bridge.Arguments;
2221
import com.facebook.react.bridge.ReadableMap;
2322
import com.facebook.react.bridge.ReadableNativeMap;
2423
import com.facebook.react.bridge.WritableMap;
2524

2625
import java.util.HashMap;
2726
import java.util.Iterator;
28-
import com.sensorsdata.analytics.android.sdk.SensorsDataAPI;
2927
import com.sensorsdata.analytics.android.sdk.SALog;
3028
import org.json.JSONObject;
3129

@@ -91,4 +89,22 @@ public static HashMap<String, Object> convertToHashMap(ReadableMap properties) {
9189
}
9290
return map;
9391
}
92+
93+
/**
94+
* merge source JSONObject to dest JSONObject
95+
* @param source
96+
* @param dest
97+
*/
98+
public static void mergeJSONObject(final JSONObject source, JSONObject dest) {
99+
try {
100+
Iterator<String> sourceIterator = source.keys();
101+
while (sourceIterator.hasNext()) {
102+
String key = sourceIterator.next();
103+
Object value = source.get(key);
104+
dest.put(key, value);
105+
}
106+
} catch (Exception ex) {
107+
SALog.printStackTrace(ex);
108+
}
109+
}
94110
}

index.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -465,6 +465,7 @@ function trackAppInstall(properties) {
465465

466466
function registerDynamicSuperProperties() {
467467
var dynamicProxy = {};
468+
RNSensorsDataModule && RNSensorsDataModule.registerDynamicPlugin && RNSensorsDataModule.registerDynamicPlugin();
468469
try {
469470
Object.defineProperty(dynamicProxy,'properties', {
470471
set: function (value) {
@@ -495,6 +496,7 @@ function init(config){
495496
RNSensorsAnalyticsModule &&
496497
RNSensorsAnalyticsModule.init &&
497498
RNSensorsAnalyticsModule.init(config);
499+
RNSensorsDataModule && RNSensorsDataModule.registerDynamicPlugin && RNSensorsDataModule.registerDynamicPlugin();
498500
}
499501

500502
/************** Android only start *****************/

ios/RNSensorsAnalyticsModule.m

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@
3232
#import "SAReactNativeManager.h"
3333
#import "SAReactNativeEventProperty.h"
3434

35-
NSString *const kSAReactNativePluginVersion = @"react_native:2.3.1";
35+
NSString *const kSAReactNativePluginVersion = @"react_native:2.3.2";
3636

3737
@implementation RNSensorsAnalyticsModule
3838

0 commit comments

Comments
 (0)