@onekeyfe/react-native-jpush 0.0.0-stage → 6.7.0-23
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +56 -2
- package/ReactNativeJpush.podspec +66 -0
- package/android/CMakeLists.txt +24 -0
- package/android/build.gradle +144 -0
- package/android/fcm/build.gradle +36 -0
- package/android/fcm/consumer-rules.pro +2 -0
- package/android/fcm/src/main/AndroidManifest.xml +25 -0
- package/android/fcm/src/main/java/com/onekey/jpush/fcm/FcmInitProvider.java +25 -0
- package/android/fcm/src/main/java/com/onekey/jpush/fcm/FcmMessagingService.java +84 -0
- package/android/fcm/src/main/java/com/onekey/jpush/fcm/FcmPushManager.java +69 -0
- package/android/fcm/src/test/java/com/onekey/jpush/fcm/FcmAdapterTest.java +684 -0
- package/android/fcm/src/test/java/com/onekey/jpush/fcm/FcmManifestTest.java +54 -0
- package/android/gradle.properties +4 -0
- package/android/src/main/AndroidManifest.xml +143 -0
- package/android/src/main/cpp/cpp-adapter.cpp +6 -0
- package/android/src/main/java/cn/android/service/JTransitActivity.java +19 -0
- package/android/src/main/java/cn/jiguang/android/BuildConfig.java +10 -0
- package/android/src/main/java/cn/jiguang/android/IDataShare.java +190 -0
- package/android/src/main/java/cn/jiguang/api/BaseLogger.java +82 -0
- package/android/src/main/java/cn/jiguang/api/JAction.java +22 -0
- package/android/src/main/java/cn/jiguang/api/JActionExtra.java +21 -0
- package/android/src/main/java/cn/jiguang/api/JAnalyticsAction.java +11 -0
- package/android/src/main/java/cn/jiguang/api/JCoreInterface.java +228 -0
- package/android/src/main/java/cn/jiguang/api/JCoreManager.java +156 -0
- package/android/src/main/java/cn/jiguang/api/JDispatchAction.java +66 -0
- package/android/src/main/java/cn/jiguang/api/MultiSpHelper.java +114 -0
- package/android/src/main/java/cn/jiguang/api/ReportCallBack.java +9 -0
- package/android/src/main/java/cn/jiguang/api/SdkType.java +13 -0
- package/android/src/main/java/cn/jiguang/api/utils/JCollectionAuth.java +28 -0
- package/android/src/main/java/cn/jiguang/core/JCoreCrypto.java +545 -0
- package/android/src/main/java/cn/jiguang/core/JCoreStorage.java +737 -0
- package/android/src/main/java/cn/jiguang/core/JCoreTcpEngine.java +1395 -0
- package/android/src/main/java/cn/jiguang/core/JCoreWireCodec.java +1716 -0
- package/android/src/main/java/cn/jiguang/internal/ActionManager.java +63 -0
- package/android/src/main/java/cn/jiguang/internal/JConstants.java +61 -0
- package/android/src/main/java/cn/jiguang/internal/JCoreHelperAction.java +12 -0
- package/android/src/main/java/cn/jiguang/internal/JCoreInternalHelper.java +102 -0
- package/android/src/main/java/cn/jiguang/net/DefaultHostVerifier.java +40 -0
- package/android/src/main/java/cn/jiguang/net/HttpRequest.java +78 -0
- package/android/src/main/java/cn/jiguang/net/HttpResponse.java +48 -0
- package/android/src/main/java/cn/jiguang/net/HttpUtils.java +106 -0
- package/android/src/main/java/cn/jiguang/plugins/core/JCoreModule.java +91 -0
- package/android/src/main/java/cn/jiguang/plugins/core/JCorePackage.java +27 -0
- package/android/src/main/java/cn/jiguang/plugins/push/JPushModule.java +773 -0
- package/android/src/main/java/cn/jiguang/plugins/push/JPushPackage.java +25 -0
- package/android/src/main/java/cn/jiguang/plugins/push/common/JConstants.java +88 -0
- package/android/src/main/java/cn/jiguang/plugins/push/common/JLogger.java +122 -0
- package/android/src/main/java/cn/jiguang/plugins/push/helper/JPushHelper.java +710 -0
- package/android/src/main/java/cn/jiguang/plugins/push/receiver/JPushBroadcastReceiver.java +37 -0
- package/android/src/main/java/cn/jiguang/plugins/push/receiver/JPushModuleReceiver.java +264 -0
- package/android/src/main/java/cn/jiguang/plugins/service/JCoreModuleService.java +7 -0
- package/android/src/main/java/cn/jpush/android/api/BasicPushNotificationBuilder.java +83 -0
- package/android/src/main/java/cn/jpush/android/api/CallBackParams.java +50 -0
- package/android/src/main/java/cn/jpush/android/api/CmdMessage.java +33 -0
- package/android/src/main/java/cn/jpush/android/api/CustomMessage.java +28 -0
- package/android/src/main/java/cn/jpush/android/api/CustomPushNotificationBuilder.java +81 -0
- package/android/src/main/java/cn/jpush/android/api/DefaultPushNotificationBuilder.java +90 -0
- package/android/src/main/java/cn/jpush/android/api/InAppSlotParams.java +65 -0
- package/android/src/main/java/cn/jpush/android/api/InstrumentedActivity.java +17 -0
- package/android/src/main/java/cn/jpush/android/api/InstrumentedListActivity.java +17 -0
- package/android/src/main/java/cn/jpush/android/api/JPushInterface.java +490 -0
- package/android/src/main/java/cn/jpush/android/api/JPushMessage.java +121 -0
- package/android/src/main/java/cn/jpush/android/api/JThirdPlatFormInterface.java +247 -0
- package/android/src/main/java/cn/jpush/android/api/MultiActionsNotificationBuilder.java +72 -0
- package/android/src/main/java/cn/jpush/android/api/NotificationCustomButton.java +50 -0
- package/android/src/main/java/cn/jpush/android/api/NotificationMessage.java +67 -0
- package/android/src/main/java/cn/jpush/android/api/PushNotificationBuilder.java +13 -0
- package/android/src/main/java/cn/jpush/android/api/TagAliasCallback.java +8 -0
- package/android/src/main/java/cn/jpush/android/data/JPushCollectControl.java +96 -0
- package/android/src/main/java/cn/jpush/android/data/JPushConfig.java +79 -0
- package/android/src/main/java/cn/jpush/android/data/JPushConfigEx.java +41 -0
- package/android/src/main/java/cn/jpush/android/data/JPushLocalNotification.java +155 -0
- package/android/src/main/java/cn/jpush/android/helper/JCoreHelper.java +70 -0
- package/android/src/main/java/cn/jpush/android/helper/Logger.java +82 -0
- package/android/src/main/java/cn/jpush/android/local/ActionHelper.java +1293 -0
- package/android/src/main/java/cn/jpush/android/local/ActivityLifeCallBack.java +47 -0
- package/android/src/main/java/cn/jpush/android/local/JPushAction.java +67 -0
- package/android/src/main/java/cn/jpush/android/local/JPushConstants.java +34 -0
- package/android/src/main/java/cn/jpush/android/local/JPushResponse.java +26 -0
- package/android/src/main/java/cn/jpush/android/local/ProxyActivityAction.java +34 -0
- package/android/src/main/java/cn/jpush/android/service/AlarmReceiver.java +15 -0
- package/android/src/main/java/cn/jpush/android/service/BActivity.java +19 -0
- package/android/src/main/java/cn/jpush/android/service/DActivity.java +19 -0
- package/android/src/main/java/cn/jpush/android/service/DaemonService.java +17 -0
- package/android/src/main/java/cn/jpush/android/service/DataProvider.java +136 -0
- package/android/src/main/java/cn/jpush/android/service/DataShare.java +129 -0
- package/android/src/main/java/cn/jpush/android/service/DownloadProvider.java +139 -0
- package/android/src/main/java/cn/jpush/android/service/InitProvider.java +48 -0
- package/android/src/main/java/cn/jpush/android/service/JCommonService.java +79 -0
- package/android/src/main/java/cn/jpush/android/service/JNotifyActivity.java +28 -0
- package/android/src/main/java/cn/jpush/android/service/JPushMessageReceiver.java +94 -0
- package/android/src/main/java/cn/jpush/android/service/PushReceiver.java +26 -0
- package/android/src/main/java/cn/jpush/android/service/PushService.java +28 -0
- package/android/src/main/java/cn/jpush/android/service/SchedulerReceiver.java +17 -0
- package/android/src/main/java/cn/jpush/android/service/TagAliasReceiver.java +11 -0
- package/android/src/main/java/cn/jpush/android/service/WakedResultReceiver.java +24 -0
- package/android/src/main/java/cn/jpush/android/ui/FullScreenView.java +11 -0
- package/android/src/main/java/cn/jpush/android/ui/PopWinActivity.java +16 -0
- package/android/src/main/java/cn/jpush/android/ui/PushActivity.java +27 -0
- package/android/src/main/java/cn/jpush/android/ui/RoundedImageView.java +63 -0
- package/android/src/main/java/cn/jpush/android/ui/ShadowViewCard.java +56 -0
- package/android/src/main/java/cn/jpush/android/ups/ICallbackResult.java +5 -0
- package/android/src/main/java/cn/jpush/android/ups/JPushUPSManager.java +37 -0
- package/android/src/main/java/cn/jpush/android/ups/TokenResult.java +47 -0
- package/android/src/main/java/cn/jpush/android/ups/UPSRegisterCallBack.java +4 -0
- package/android/src/main/java/cn/jpush/android/ups/UPSTurnCallBack.java +4 -0
- package/android/src/main/java/cn/jpush/android/ups/UPSUnRegisterCallBack.java +4 -0
- package/android/src/main/java/com/margelo/nitro/reactnativejpush/ReactNativeJpush.kt +455 -0
- package/android/src/main/java/com/margelo/nitro/reactnativejpush/ReactNativeJpushPackage.kt +50 -0
- package/android/src/main/res/values/jpush_string.xml +7 -0
- package/android/src/main/res/values/jpush_style.xml +22 -0
- package/android/src/test/java/com/margelo/nitro/reactnativejpush/JPushCloudHandshakeTest.java +110 -0
- package/android/src/test/java/com/margelo/nitro/reactnativejpush/JPushHandshakeFailureTest.java +73 -0
- package/android/src/test/java/com/margelo/nitro/reactnativejpush/ReactNativeJpushProtocolTest.java +908 -0
- package/ios/ReactNativeJpush.swift +522 -0
- package/ios/bridge/RCTJCoreModule.h +5 -0
- package/ios/bridge/RCTJCoreModule.m +31 -0
- package/ios/bridge/RCTJPushEventQueue.h +14 -0
- package/ios/bridge/RCTJPushEventQueue.m +23 -0
- package/ios/bridge/RCTJPushModule.h +37 -0
- package/ios/bridge/RCTJPushModule.m +1165 -0
- package/ios/include/JCOREService.h +3 -0
- package/ios/include/JGCOREAPI.h +14 -0
- package/ios/include/JGInforCollectionAuth.h +17 -0
- package/ios/include/JGInforCollectionAuthItems.h +2 -0
- package/ios/include/JGPushNotificationTrigger.h +2 -0
- package/ios/include/JPUSHService.h +359 -0
- package/ios/jcore/JCOREConfiguration.h +141 -0
- package/ios/jcore/JCOREConfiguration.m +703 -0
- package/ios/jcore/JCORECrypto.h +73 -0
- package/ios/jcore/JCORECrypto.m +649 -0
- package/ios/jcore/JCORESisResolver.h +56 -0
- package/ios/jcore/JCORESisResolver.m +525 -0
- package/ios/jcore/JCORETcpSession.h +42 -0
- package/ios/jcore/JCORETcpSession.m +956 -0
- package/ios/jcore/JCOREWireProtocol.h +274 -0
- package/ios/jcore/JCOREWireProtocol.m +1453 -0
- package/ios/jpush/JPUSHModels.m +214 -0
- package/ios/jpush/JPUSHNotificationManager.h +34 -0
- package/ios/jpush/JPUSHNotificationManager.m +360 -0
- package/ios/jpush/JPUSHService.m +794 -0
- package/ios/tests/ReactNativeJpushTests.m +148 -0
- package/lib/module/ReactNativeJpush.nitro.js +4 -0
- package/lib/module/ReactNativeJpush.nitro.js.map +1 -0
- package/lib/module/index.js +801 -0
- package/lib/module/index.js.map +1 -0
- package/lib/module/package.json +1 -0
- package/lib/typescript/package.json +1 -0
- package/lib/typescript/src/ReactNativeJpush.nitro.d.ts +60 -0
- package/lib/typescript/src/ReactNativeJpush.nitro.d.ts.map +1 -0
- package/lib/typescript/src/index.d.ts +235 -0
- package/lib/typescript/src/index.d.ts.map +1 -0
- package/nitro.json +23 -0
- package/nitrogen/generated/android/c++/JFunc_void_bool.hpp +75 -0
- package/nitrogen/generated/android/c++/JFunc_void_std__string_std__string.hpp +76 -0
- package/nitrogen/generated/android/c++/JHybridReactNativeJpushSpec.cpp +310 -0
- package/nitrogen/generated/android/c++/JHybridReactNativeJpushSpec.hpp +115 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativejpush/Func_void_bool.kt +78 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativejpush/Func_void_std__string_std__string.kt +78 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativejpush/HybridReactNativeJpushSpec.kt +274 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativejpush/reactnativejpushOnLoad.kt +35 -0
- package/nitrogen/generated/android/reactnativejpush+autolinking.cmake +81 -0
- package/nitrogen/generated/android/reactnativejpush+autolinking.gradle +27 -0
- package/nitrogen/generated/android/reactnativejpushOnLoad.cpp +58 -0
- package/nitrogen/generated/android/reactnativejpushOnLoad.hpp +34 -0
- package/nitrogen/generated/ios/ReactNativeJpush+autolinking.rb +62 -0
- package/nitrogen/generated/ios/ReactNativeJpush-Swift-Cxx-Bridge.cpp +49 -0
- package/nitrogen/generated/ios/ReactNativeJpush-Swift-Cxx-Bridge.hpp +147 -0
- package/nitrogen/generated/ios/ReactNativeJpush-Swift-Cxx-Umbrella.hpp +46 -0
- package/nitrogen/generated/ios/ReactNativeJpushAutolinking.mm +33 -0
- package/nitrogen/generated/ios/ReactNativeJpushAutolinking.swift +26 -0
- package/nitrogen/generated/ios/c++/HybridReactNativeJpushSpecSwift.cpp +11 -0
- package/nitrogen/generated/ios/c++/HybridReactNativeJpushSpecSwift.hpp +402 -0
- package/nitrogen/generated/ios/swift/Func_void_bool.swift +46 -0
- package/nitrogen/generated/ios/swift/Func_void_std__string_std__string.swift +46 -0
- package/nitrogen/generated/ios/swift/HybridReactNativeJpushSpec.swift +107 -0
- package/nitrogen/generated/ios/swift/HybridReactNativeJpushSpec_cxx.swift +723 -0
- package/nitrogen/generated/shared/c++/HybridReactNativeJpushSpec.cpp +73 -0
- package/nitrogen/generated/shared/c++/HybridReactNativeJpushSpec.hpp +116 -0
- package/package.json +174 -4
- package/src/ReactNativeJpush.nitro.ts +93 -0
- package/src/index.tsx +1090 -0
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
package cn.jiguang.internal;
|
|
2
|
+
|
|
3
|
+
import android.content.Context;
|
|
4
|
+
import android.text.TextUtils;
|
|
5
|
+
import cn.jiguang.api.JAction;
|
|
6
|
+
import cn.jiguang.api.JActionExtra;
|
|
7
|
+
import cn.jiguang.api.JDispatchAction;
|
|
8
|
+
import java.util.concurrent.ConcurrentHashMap;
|
|
9
|
+
import org.json.JSONObject;
|
|
10
|
+
|
|
11
|
+
public class ActionManager {
|
|
12
|
+
private static volatile ActionManager instance;
|
|
13
|
+
private final ConcurrentHashMap<String, JDispatchAction> dispatchActions = new ConcurrentHashMap<String, JDispatchAction>();
|
|
14
|
+
private final ConcurrentHashMap<String, JAction> actions = new ConcurrentHashMap<String, JAction>();
|
|
15
|
+
private final ConcurrentHashMap<String, JActionExtra> extraActions = new ConcurrentHashMap<String, JActionExtra>();
|
|
16
|
+
|
|
17
|
+
public static ActionManager getInstance() {
|
|
18
|
+
if (instance == null) {
|
|
19
|
+
synchronized (ActionManager.class) {
|
|
20
|
+
if (instance == null) {
|
|
21
|
+
instance = new ActionManager();
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
return instance;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
public static void addAction(String sdkType, String className) {
|
|
29
|
+
if (TextUtils.isEmpty(sdkType) || TextUtils.isEmpty(className)) {
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
try {
|
|
33
|
+
Object instanceObj = Class.forName(className).getDeclaredConstructor().newInstance();
|
|
34
|
+
if (instanceObj instanceof JDispatchAction) {
|
|
35
|
+
getInstance().dispatchActions.put(sdkType, (JDispatchAction) instanceObj);
|
|
36
|
+
} else if (instanceObj instanceof JAction) {
|
|
37
|
+
getInstance().actions.put(sdkType, (JAction) instanceObj);
|
|
38
|
+
} else if (instanceObj instanceof JActionExtra) {
|
|
39
|
+
getInstance().extraActions.put(sdkType, (JActionExtra) instanceObj);
|
|
40
|
+
}
|
|
41
|
+
} catch (Throwable ignored) {
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
public JDispatchAction getJDispatchAction(String sdkType) {
|
|
46
|
+
return sdkType != null ? dispatchActions.get(sdkType) : null;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
public boolean wrapSdkVersionInfo(JSONObject target) {
|
|
50
|
+
return target != null;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
public static boolean wrapSdkTypeVersionInfo(JSONObject target) {
|
|
54
|
+
return target != null;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
public void handleMessage(Context context, String sdkType, Object message) {
|
|
58
|
+
JDispatchAction action = getJDispatchAction(sdkType);
|
|
59
|
+
if (action != null) {
|
|
60
|
+
action.handleMessage(context, sdkType, message);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
package cn.jiguang.internal;
|
|
2
|
+
|
|
3
|
+
import android.content.Context;
|
|
4
|
+
import cn.jiguang.api.JAnalyticsAction;
|
|
5
|
+
import cn.jiguang.core.JCoreStorage;
|
|
6
|
+
import java.util.LinkedList;
|
|
7
|
+
|
|
8
|
+
public class JConstants {
|
|
9
|
+
public static final byte USER_SERVICE_ACTION_ON_CREATE = 1;
|
|
10
|
+
public static final byte USER_SERVICE_ACTION_ON_START_COMMAND = 2;
|
|
11
|
+
public static final String SDK_TYPE = "JCore";
|
|
12
|
+
public static String SDK_NAME = "JCore";
|
|
13
|
+
public static final String SDK_VERSION = "5.2.0";
|
|
14
|
+
public static int SDK_VERSION_INT = 520;
|
|
15
|
+
public static boolean DEBUG_MODE = false;
|
|
16
|
+
public static boolean CMD_TO_PRINT_ALL_LOG = false;
|
|
17
|
+
public static boolean INTERNAL_USE = false;
|
|
18
|
+
public static boolean isInstrumentationHook = true;
|
|
19
|
+
public static final boolean isDynamicLoad = false;
|
|
20
|
+
public static final long SECOND = 1000L;
|
|
21
|
+
public static final long MIN = 60000L;
|
|
22
|
+
public static final long HOUR = 3600000L;
|
|
23
|
+
public static final long DAY = 86400000L;
|
|
24
|
+
public static final String ENCODING_UTF_8 = "UTF-8";
|
|
25
|
+
public static int DEFAULT_HEARTBEAT_INTERVAL = 285;
|
|
26
|
+
public static int DEFAULT_ALARM_DELAY = 290;
|
|
27
|
+
public static String TUU = "";
|
|
28
|
+
public static boolean AT_I = false;
|
|
29
|
+
public static String APP_KEY = "";
|
|
30
|
+
public static LinkedList<String> TUU_LIST = new LinkedList<String>();
|
|
31
|
+
public static JAnalyticsAction jAnalyticsAction;
|
|
32
|
+
public static Context mApplicationContext;
|
|
33
|
+
|
|
34
|
+
public static Context getAppContext(Context context) {
|
|
35
|
+
if (mApplicationContext == null && context != null) {
|
|
36
|
+
try {
|
|
37
|
+
Context app = context.getApplicationContext();
|
|
38
|
+
mApplicationContext = app != null ? app : context;
|
|
39
|
+
} catch (Throwable ignored) {
|
|
40
|
+
mApplicationContext = context;
|
|
41
|
+
}
|
|
42
|
+
JCoreStorage.setAppContext(mApplicationContext);
|
|
43
|
+
}
|
|
44
|
+
return mApplicationContext != null ? mApplicationContext : JCoreStorage.getAppContext(context);
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
public static Context getAppContext() {
|
|
48
|
+
return getAppContext(null);
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
public static boolean isTestEnv() {
|
|
52
|
+
return false;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
public static void setTestEnv(boolean testEnv) {
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
public static boolean isAndroidQ(Context context, boolean checkTargetSdk, String caller) {
|
|
59
|
+
return true;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
package cn.jiguang.internal;
|
|
2
|
+
|
|
3
|
+
import android.content.Context;
|
|
4
|
+
import android.os.Bundle;
|
|
5
|
+
|
|
6
|
+
public abstract class JCoreHelperAction {
|
|
7
|
+
public abstract Object onEvent(Context context, String sdkType, int cmd, String action, Bundle bundle, Object... extras);
|
|
8
|
+
|
|
9
|
+
public abstract Bundle directHandle(Context context, String sdkType, String action, Bundle bundle);
|
|
10
|
+
|
|
11
|
+
public abstract Object onCommonMethod(Context context, String action, Object arg);
|
|
12
|
+
}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
package cn.jiguang.internal;
|
|
2
|
+
|
|
3
|
+
import android.content.Context;
|
|
4
|
+
import android.os.Bundle;
|
|
5
|
+
import cn.jiguang.core.JCoreStorage;
|
|
6
|
+
import cn.jiguang.core.JCoreTcpEngine;
|
|
7
|
+
|
|
8
|
+
public class JCoreInternalHelper {
|
|
9
|
+
private static volatile JCoreInternalHelper instance;
|
|
10
|
+
private volatile JCoreHelperAction helperAction;
|
|
11
|
+
|
|
12
|
+
private JCoreInternalHelper() {
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
public static JCoreInternalHelper getInstance() {
|
|
16
|
+
if (instance == null) {
|
|
17
|
+
synchronized (JCoreInternalHelper.class) {
|
|
18
|
+
if (instance == null) {
|
|
19
|
+
instance = new JCoreInternalHelper();
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
return instance;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
public void setHelperAction(JCoreHelperAction action) {
|
|
27
|
+
this.helperAction = action;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
public Object onEvent(Context context, String sdkType, int cmd, String action, Bundle bundle, Object... extras) {
|
|
31
|
+
return onEvent(context, sdkType, cmd, true, action, bundle, extras);
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
public Object onEvent(
|
|
35
|
+
final Context context,
|
|
36
|
+
final String sdkType,
|
|
37
|
+
final int cmd,
|
|
38
|
+
boolean async,
|
|
39
|
+
final String action,
|
|
40
|
+
final Bundle bundle,
|
|
41
|
+
final Object... extras
|
|
42
|
+
) {
|
|
43
|
+
JConstants.getAppContext(context);
|
|
44
|
+
JCoreHelperAction custom = this.helperAction;
|
|
45
|
+
if (custom != null) {
|
|
46
|
+
return custom.onEvent(context, sdkType, cmd, action, bundle, extras);
|
|
47
|
+
}
|
|
48
|
+
Bundle result = JCoreTcpEngine.getInstance().handleEvent(context, sdkType, cmd, action, bundle, extras);
|
|
49
|
+
if (result != null && result.containsKey("result")) {
|
|
50
|
+
return result.get("result");
|
|
51
|
+
}
|
|
52
|
+
return result;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
public Bundle directHandle(Context context, String sdkType, String action, Bundle bundle) {
|
|
56
|
+
Context app = JConstants.getAppContext(context);
|
|
57
|
+
JCoreHelperAction custom = this.helperAction;
|
|
58
|
+
if (custom != null) {
|
|
59
|
+
return custom.directHandle(app, sdkType, action, bundle);
|
|
60
|
+
}
|
|
61
|
+
Bundle out = new Bundle();
|
|
62
|
+
out.putString("sdk_type", sdkType != null ? sdkType : "");
|
|
63
|
+
out.putString("action", action != null ? action : "");
|
|
64
|
+
if ("get_reg_id".equals(action)) {
|
|
65
|
+
out.putString("reg_id", JCoreStorage.getRegistrationId(app));
|
|
66
|
+
} else if ("sp_set".equals(action) && bundle != null) {
|
|
67
|
+
String key = bundle.getString("key");
|
|
68
|
+
if (key != null && !key.isEmpty()) {
|
|
69
|
+
JCoreStorage.putSpValue(app, key, bundle.getString("value", ""));
|
|
70
|
+
out.putBoolean("success", true);
|
|
71
|
+
} else {
|
|
72
|
+
for (String k : bundle.keySet()) {
|
|
73
|
+
Object v = bundle.get(k);
|
|
74
|
+
if (v != null) {
|
|
75
|
+
JCoreStorage.putSpValue(app, k, String.valueOf(v));
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
out.putBoolean("success", true);
|
|
79
|
+
}
|
|
80
|
+
} else if ("sp_get".equals(action) && bundle != null) {
|
|
81
|
+
String key = bundle.getString("key");
|
|
82
|
+
String defVal = bundle.getString("default", "");
|
|
83
|
+
out.putString("value", JCoreStorage.getSpValue(app, key, defVal));
|
|
84
|
+
} else if ("get_uid".equals(action)) {
|
|
85
|
+
out.putLong("uid", JCoreStorage.getUid(app));
|
|
86
|
+
}
|
|
87
|
+
return out;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
public Object commonMethod(Context context, String action, Object arg) {
|
|
91
|
+
JConstants.getAppContext(context);
|
|
92
|
+
JCoreHelperAction custom = this.helperAction;
|
|
93
|
+
if (custom != null) {
|
|
94
|
+
return custom.onCommonMethod(context, action, arg);
|
|
95
|
+
}
|
|
96
|
+
return null;
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
public synchronized void initLoad(Context context) {
|
|
100
|
+
JConstants.getAppContext(context);
|
|
101
|
+
}
|
|
102
|
+
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
package cn.jiguang.net;
|
|
2
|
+
|
|
3
|
+
import java.security.cert.Certificate;
|
|
4
|
+
import javax.net.ssl.HostnameVerifier;
|
|
5
|
+
import javax.net.ssl.HttpsURLConnection;
|
|
6
|
+
import javax.net.ssl.SSLPeerUnverifiedException;
|
|
7
|
+
import javax.net.ssl.SSLSession;
|
|
8
|
+
|
|
9
|
+
public class DefaultHostVerifier implements HostnameVerifier {
|
|
10
|
+
public String expectedHost;
|
|
11
|
+
|
|
12
|
+
public DefaultHostVerifier(String expectedHost) {
|
|
13
|
+
this.expectedHost = expectedHost;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
@Override
|
|
17
|
+
public boolean verify(String hostname, SSLSession session) {
|
|
18
|
+
if (hostname == null || hostname.isEmpty() || session == null) {
|
|
19
|
+
return false;
|
|
20
|
+
}
|
|
21
|
+
String targetHost = (this.expectedHost != null && !this.expectedHost.isEmpty())
|
|
22
|
+
? this.expectedHost
|
|
23
|
+
: hostname;
|
|
24
|
+
if (!targetHost.equalsIgnoreCase(hostname)) {
|
|
25
|
+
return false;
|
|
26
|
+
}
|
|
27
|
+
try {
|
|
28
|
+
Certificate[] peerCertificates = session.getPeerCertificates();
|
|
29
|
+
if (peerCertificates == null || peerCertificates.length == 0) {
|
|
30
|
+
return false;
|
|
31
|
+
}
|
|
32
|
+
} catch (SSLPeerUnverifiedException e) {
|
|
33
|
+
return false;
|
|
34
|
+
} catch (Throwable ignored) {
|
|
35
|
+
return false;
|
|
36
|
+
}
|
|
37
|
+
HostnameVerifier defaultVerifier = HttpsURLConnection.getDefaultHostnameVerifier();
|
|
38
|
+
return defaultVerifier != null && defaultVerifier != this && defaultVerifier.verify(targetHost, session);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
package cn.jiguang.net;
|
|
2
|
+
|
|
3
|
+
import java.util.HashMap;
|
|
4
|
+
import java.util.Map;
|
|
5
|
+
import javax.net.ssl.HostnameVerifier;
|
|
6
|
+
import javax.net.ssl.SSLSocketFactory;
|
|
7
|
+
|
|
8
|
+
public class HttpRequest {
|
|
9
|
+
private String url;
|
|
10
|
+
private int connectTimeout = 10000;
|
|
11
|
+
private int readTimeout = 10000;
|
|
12
|
+
private Map<String, String> requestProperties = new HashMap<String, String>();
|
|
13
|
+
private Object body;
|
|
14
|
+
private SSLSocketFactory sslSocketFactory;
|
|
15
|
+
private HostnameVerifier hostnameVerifier;
|
|
16
|
+
|
|
17
|
+
public HttpRequest(String url) {
|
|
18
|
+
this.url = url;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
public String getUrl() {
|
|
22
|
+
return url;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
public void setUrl(String url) {
|
|
26
|
+
this.url = url;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
public int getConnectTimeout() {
|
|
30
|
+
return connectTimeout;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
public void setConnectTimeout(int connectTimeout) {
|
|
34
|
+
this.connectTimeout = connectTimeout;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
public int getReadTimeout() {
|
|
38
|
+
return readTimeout;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
public void setReadTimeout(int readTimeout) {
|
|
42
|
+
this.readTimeout = readTimeout;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
public Map<String, String> getRequestProperties() {
|
|
46
|
+
return requestProperties;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
public void setRequestProperty(String key, String value) {
|
|
50
|
+
if (key != null && value != null) {
|
|
51
|
+
requestProperties.put(key, value);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
public Object getBody() {
|
|
56
|
+
return body;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
public void setBody(Object body) {
|
|
60
|
+
this.body = body;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
public SSLSocketFactory getSslSocketFactory() {
|
|
64
|
+
return sslSocketFactory;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
public void setSslSocketFactory(SSLSocketFactory sslSocketFactory) {
|
|
68
|
+
this.sslSocketFactory = sslSocketFactory;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
public HostnameVerifier getHostnameVerifier() {
|
|
72
|
+
return hostnameVerifier;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
public void setHostnameVerifier(HostnameVerifier hostnameVerifier) {
|
|
76
|
+
this.hostnameVerifier = hostnameVerifier;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
package cn.jiguang.net;
|
|
2
|
+
|
|
3
|
+
import java.util.HashMap;
|
|
4
|
+
import java.util.Map;
|
|
5
|
+
|
|
6
|
+
public class HttpResponse {
|
|
7
|
+
private String url;
|
|
8
|
+
private String responseBody;
|
|
9
|
+
private int responseCode = -1;
|
|
10
|
+
private Map<String, Object> responseHeaders = new HashMap<String, Object>();
|
|
11
|
+
|
|
12
|
+
public HttpResponse() {
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
public HttpResponse(String url) {
|
|
16
|
+
this.url = url;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
public String getUrl() {
|
|
20
|
+
return url;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
public void setUrl(String url) {
|
|
24
|
+
this.url = url;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
public String getResponseBody() {
|
|
28
|
+
return responseBody;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
public void setResponseBody(String responseBody) {
|
|
32
|
+
this.responseBody = responseBody;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
public int getResponseCode() {
|
|
36
|
+
return responseCode;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
public void setResponseCode(int responseCode) {
|
|
40
|
+
this.responseCode = responseCode;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
public void setResponseHeader(String key, String value) {
|
|
44
|
+
if (key != null) {
|
|
45
|
+
responseHeaders.put(key, value);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
package cn.jiguang.net;
|
|
2
|
+
|
|
3
|
+
import android.content.Context;
|
|
4
|
+
import java.io.ByteArrayOutputStream;
|
|
5
|
+
import java.io.InputStream;
|
|
6
|
+
import java.io.OutputStream;
|
|
7
|
+
import java.net.HttpURLConnection;
|
|
8
|
+
import java.net.URL;
|
|
9
|
+
import java.nio.charset.StandardCharsets;
|
|
10
|
+
import java.util.Map;
|
|
11
|
+
import javax.net.ssl.HttpsURLConnection;
|
|
12
|
+
|
|
13
|
+
public class HttpUtils {
|
|
14
|
+
public static HttpResponse httpGet(Context context, String url) {
|
|
15
|
+
return httpGet(context, new HttpRequest(url));
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
public static HttpResponse httpGet(Context context, HttpRequest request) {
|
|
19
|
+
return execute(context, request, false);
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
public static HttpResponse httpPost(Context context, String url, String body) {
|
|
23
|
+
HttpRequest req = new HttpRequest(url);
|
|
24
|
+
req.setBody(body);
|
|
25
|
+
return httpPost(context, req);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
public static HttpResponse httpPost(Context context, HttpRequest request) {
|
|
29
|
+
return execute(context, request, true);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
private static HttpResponse execute(Context context, HttpRequest request, boolean isPost) {
|
|
33
|
+
HttpResponse response = new HttpResponse(request != null ? request.getUrl() : "");
|
|
34
|
+
if (request == null || request.getUrl() == null) {
|
|
35
|
+
return response;
|
|
36
|
+
}
|
|
37
|
+
HttpURLConnection conn = null;
|
|
38
|
+
InputStream in = null;
|
|
39
|
+
OutputStream out = null;
|
|
40
|
+
try {
|
|
41
|
+
URL url = new URL(request.getUrl());
|
|
42
|
+
conn = (HttpURLConnection) url.openConnection();
|
|
43
|
+
conn.setConnectTimeout(request.getConnectTimeout());
|
|
44
|
+
conn.setReadTimeout(request.getReadTimeout());
|
|
45
|
+
if (conn instanceof HttpsURLConnection) {
|
|
46
|
+
HttpsURLConnection https = (HttpsURLConnection) conn;
|
|
47
|
+
if (request.getSslSocketFactory() != null) {
|
|
48
|
+
https.setSSLSocketFactory(request.getSslSocketFactory());
|
|
49
|
+
}
|
|
50
|
+
https.setHostnameVerifier(
|
|
51
|
+
request.getHostnameVerifier() != null
|
|
52
|
+
? request.getHostnameVerifier()
|
|
53
|
+
: new DefaultHostVerifier(url.getHost())
|
|
54
|
+
);
|
|
55
|
+
}
|
|
56
|
+
for (Map.Entry<String, String> entry : request.getRequestProperties().entrySet()) {
|
|
57
|
+
conn.setRequestProperty(entry.getKey(), entry.getValue());
|
|
58
|
+
}
|
|
59
|
+
if (isPost) {
|
|
60
|
+
conn.setRequestMethod("POST");
|
|
61
|
+
conn.setDoOutput(true);
|
|
62
|
+
Object body = request.getBody();
|
|
63
|
+
byte[] bytes = null;
|
|
64
|
+
if (body instanceof byte[]) {
|
|
65
|
+
bytes = (byte[]) body;
|
|
66
|
+
} else if (body instanceof String) {
|
|
67
|
+
bytes = ((String) body).getBytes(StandardCharsets.UTF_8);
|
|
68
|
+
}
|
|
69
|
+
if (bytes != null) {
|
|
70
|
+
out = conn.getOutputStream();
|
|
71
|
+
out.write(bytes);
|
|
72
|
+
out.flush();
|
|
73
|
+
}
|
|
74
|
+
} else {
|
|
75
|
+
conn.setRequestMethod("GET");
|
|
76
|
+
}
|
|
77
|
+
int code = conn.getResponseCode();
|
|
78
|
+
response.setResponseCode(code);
|
|
79
|
+
in = code >= 400 ? conn.getErrorStream() : conn.getInputStream();
|
|
80
|
+
if (in != null) {
|
|
81
|
+
ByteArrayOutputStream buffer = new ByteArrayOutputStream();
|
|
82
|
+
byte[] chunk = new byte[2048];
|
|
83
|
+
int read;
|
|
84
|
+
while ((read = in.read(chunk)) != -1) {
|
|
85
|
+
buffer.write(chunk, 0, read);
|
|
86
|
+
}
|
|
87
|
+
response.setResponseBody(new String(buffer.toByteArray(), StandardCharsets.UTF_8));
|
|
88
|
+
}
|
|
89
|
+
} catch (Throwable ignored) {
|
|
90
|
+
} finally {
|
|
91
|
+
try {
|
|
92
|
+
if (out != null) {
|
|
93
|
+
out.close();
|
|
94
|
+
}
|
|
95
|
+
if (in != null) {
|
|
96
|
+
in.close();
|
|
97
|
+
}
|
|
98
|
+
if (conn != null) {
|
|
99
|
+
conn.disconnect();
|
|
100
|
+
}
|
|
101
|
+
} catch (Throwable ignored) {
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
return response;
|
|
105
|
+
}
|
|
106
|
+
}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
|
|
2
|
+
package cn.jiguang.plugins.core;
|
|
3
|
+
|
|
4
|
+
import android.app.Activity;
|
|
5
|
+
import android.app.Application;
|
|
6
|
+
import android.os.Bundle;
|
|
7
|
+
import android.text.TextUtils;
|
|
8
|
+
import android.util.Log;
|
|
9
|
+
|
|
10
|
+
import com.facebook.react.bridge.Arguments;
|
|
11
|
+
import com.facebook.react.bridge.Callback;
|
|
12
|
+
import com.facebook.react.bridge.ReactApplicationContext;
|
|
13
|
+
import com.facebook.react.bridge.ReactContextBaseJavaModule;
|
|
14
|
+
import com.facebook.react.bridge.ReactMethod;
|
|
15
|
+
import com.facebook.react.bridge.ReadableArray;
|
|
16
|
+
import com.facebook.react.bridge.ReadableMap;
|
|
17
|
+
import com.facebook.react.bridge.WritableMap;
|
|
18
|
+
|
|
19
|
+
import org.json.JSONObject;
|
|
20
|
+
|
|
21
|
+
import java.util.HashSet;
|
|
22
|
+
import java.util.Set;
|
|
23
|
+
import cn.jiguang.api.utils.JCollectionAuth;
|
|
24
|
+
import cn.jiguang.api.JCoreInterface;
|
|
25
|
+
import cn.jiguang.plugins.push.JPushModule;
|
|
26
|
+
|
|
27
|
+
public class JCoreModule extends ReactContextBaseJavaModule {
|
|
28
|
+
|
|
29
|
+
public static ReactApplicationContext reactContext;
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
public JCoreModule(ReactApplicationContext reactApplicationContext) {
|
|
33
|
+
super(reactApplicationContext);
|
|
34
|
+
reactContext = reactApplicationContext;
|
|
35
|
+
JPushModule.registerReactContext(reactApplicationContext);
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
@Override
|
|
39
|
+
public String getName() {
|
|
40
|
+
return "JCoreModule";
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
@ReactMethod
|
|
44
|
+
public void setAuth(boolean bool){
|
|
45
|
+
JCollectionAuth.setAuth(reactContext,bool);
|
|
46
|
+
}
|
|
47
|
+
@ReactMethod
|
|
48
|
+
public void enableAutoWakeup(boolean bool) {
|
|
49
|
+
JCollectionAuth.enableAutoWakeup(reactContext,bool);
|
|
50
|
+
}
|
|
51
|
+
@ReactMethod
|
|
52
|
+
public void setCountryCode(ReadableMap readableMap){
|
|
53
|
+
if (readableMap == null) {
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
56
|
+
String code = readableMap.getString("code");
|
|
57
|
+
if (TextUtils.isEmpty(code)) {
|
|
58
|
+
} else {
|
|
59
|
+
JCoreInterface.setCountryCode(reactContext,code);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
@ReactMethod
|
|
64
|
+
public void enableSDKLocalLog(ReadableMap readableMap){
|
|
65
|
+
if (readableMap == null) {
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
68
|
+
boolean enable = false;
|
|
69
|
+
if (readableMap.hasKey("enable")) {
|
|
70
|
+
enable = readableMap.getBoolean("enable");
|
|
71
|
+
}
|
|
72
|
+
boolean uploadJgToServer = false;
|
|
73
|
+
if (readableMap.hasKey("uploadJgToServer")) {
|
|
74
|
+
uploadJgToServer = readableMap.getBoolean("uploadJgToServer");
|
|
75
|
+
}
|
|
76
|
+
JCoreInterface.enableSDKLocalLog(reactContext,enable,uploadJgToServer);
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
@ReactMethod
|
|
80
|
+
public void readNewLogs(Callback callback) {
|
|
81
|
+
if (callback == null) {
|
|
82
|
+
return;
|
|
83
|
+
}
|
|
84
|
+
String logs = JCoreInterface.readNewLogs(reactContext);
|
|
85
|
+
WritableMap writableMap = Arguments.createMap();
|
|
86
|
+
writableMap.putString("logs", logs);
|
|
87
|
+
callback.invoke(writableMap);
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
|
|
91
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
|
|
2
|
+
package cn.jiguang.plugins.core;
|
|
3
|
+
|
|
4
|
+
import java.util.Arrays;
|
|
5
|
+
import java.util.Collections;
|
|
6
|
+
import java.util.List;
|
|
7
|
+
|
|
8
|
+
import com.facebook.react.ReactPackage;
|
|
9
|
+
import com.facebook.react.bridge.NativeModule;
|
|
10
|
+
import com.facebook.react.bridge.ReactApplicationContext;
|
|
11
|
+
import com.facebook.react.uimanager.ViewManager;
|
|
12
|
+
|
|
13
|
+
import cn.jiguang.plugins.core.JCoreModule;
|
|
14
|
+
|
|
15
|
+
public class JCorePackage implements ReactPackage {
|
|
16
|
+
|
|
17
|
+
@Override
|
|
18
|
+
public List<NativeModule> createNativeModules(ReactApplicationContext reactContext) {
|
|
19
|
+
return Arrays.<NativeModule>asList(new JCoreModule(reactContext));
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
@Override
|
|
23
|
+
public List<ViewManager> createViewManagers(ReactApplicationContext reactContext) {
|
|
24
|
+
return Collections.emptyList();
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
}
|