@onekeyfe/react-native-jpush 0.0.0-stage → 6.7.0-alpha.435
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 +23 -2
- package/ReactNativeJpush.podspec +66 -0
- package/android/CMakeLists.txt +24 -0
- package/android/build.gradle +143 -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 +23 -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 +1394 -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 +488 -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 +147 -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 +1198 -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 +93 -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/ReactNativeJpushProtocolTest.java +1016 -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 +173 -4
- package/src/ReactNativeJpush.nitro.ts +93 -0
- package/src/index.tsx +1090 -0
|
@@ -0,0 +1,455 @@
|
|
|
1
|
+
package com.margelo.nitro.reactnativejpush
|
|
2
|
+
|
|
3
|
+
import android.app.NotificationChannel
|
|
4
|
+
import android.app.NotificationManager
|
|
5
|
+
import android.content.Context
|
|
6
|
+
import android.net.Uri
|
|
7
|
+
import android.os.Build
|
|
8
|
+
import com.facebook.proguard.annotations.DoNotStrip
|
|
9
|
+
import com.facebook.react.bridge.ReactApplicationContext
|
|
10
|
+
import com.margelo.nitro.NitroModules
|
|
11
|
+
import com.margelo.nitro.nativelogger.OneKeyLog
|
|
12
|
+
import cn.jiguang.api.JCoreInterface
|
|
13
|
+
import cn.jiguang.api.utils.JCollectionAuth
|
|
14
|
+
import cn.jiguang.core.JCoreStorage
|
|
15
|
+
import cn.jiguang.plugins.core.JCoreModule
|
|
16
|
+
import cn.jiguang.plugins.push.JPushModule
|
|
17
|
+
import cn.jiguang.plugins.push.common.JConstants
|
|
18
|
+
import cn.jiguang.plugins.push.common.JLogger
|
|
19
|
+
import cn.jiguang.plugins.push.helper.JPushHelper
|
|
20
|
+
import cn.jiguang.plugins.push.receiver.JPushBroadcastReceiver
|
|
21
|
+
import cn.jpush.android.api.JPushInterface
|
|
22
|
+
import cn.jpush.android.data.JPushCollectControl
|
|
23
|
+
import cn.jpush.android.data.JPushLocalNotification
|
|
24
|
+
import org.json.JSONObject
|
|
25
|
+
|
|
26
|
+
@DoNotStrip
|
|
27
|
+
class ReactNativeJpush : HybridReactNativeJpushSpec() {
|
|
28
|
+
init {
|
|
29
|
+
getReactContext()
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
private fun getReactContext(): ReactApplicationContext? {
|
|
33
|
+
val nitroCtx = NitroModules.applicationContext
|
|
34
|
+
if (nitroCtx != null) {
|
|
35
|
+
JPushModule.registerReactContext(nitroCtx)
|
|
36
|
+
}
|
|
37
|
+
val ctx = JPushModule.reactContext ?: nitroCtx ?: JCoreModule.reactContext
|
|
38
|
+
if (ctx != null) {
|
|
39
|
+
JPushModule.registerReactContext(ctx)
|
|
40
|
+
if (JPushModule.reactContext == null) {
|
|
41
|
+
JPushModule.reactContext = ctx
|
|
42
|
+
}
|
|
43
|
+
if (JCoreModule.reactContext == null) {
|
|
44
|
+
JCoreModule.reactContext = ctx
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
return ctx
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
private fun getAppContext(): Context? {
|
|
51
|
+
return getReactContext()
|
|
52
|
+
?: JCoreStorage.getAppContext(null)
|
|
53
|
+
?: cn.jiguang.internal.JConstants.getAppContext(null)
|
|
54
|
+
?: cn.jpush.android.local.JPushConstants.getAppContext(null)
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
private fun flushQueuedNotificationBundle() {
|
|
58
|
+
val bundle = JPushBroadcastReceiver.NOTIFICATION_BUNDLE ?: return
|
|
59
|
+
val map = JPushHelper.convertNotificationBundleToMapObject(JConstants.NOTIFICATION_OPENED, bundle)
|
|
60
|
+
val eventName = if (bundle.getInt(JPushInterface.EXTRA_NOTI_TYPE, 0) == 1) {
|
|
61
|
+
JConstants.LOCAL_NOTIFICATION_EVENT
|
|
62
|
+
} else {
|
|
63
|
+
JConstants.NOTIFICATION_EVENT
|
|
64
|
+
}
|
|
65
|
+
JPushHelper.sendEventMap(eventName, map)
|
|
66
|
+
JPushBroadcastReceiver.NOTIFICATION_BUNDLE = null
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
override fun setDebugMode(enable: Boolean) {
|
|
70
|
+
JPushInterface.setDebugMode(enable)
|
|
71
|
+
JLogger.setLoggerEnable(enable)
|
|
72
|
+
OneKeyLog.info(JLogger.TAG, "setDebugMode enable=$enable")
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
override fun initPush() {
|
|
76
|
+
val ctx = getAppContext()
|
|
77
|
+
OneKeyLog.info(JLogger.TAG, "initPush")
|
|
78
|
+
JPushInterface.init(ctx)
|
|
79
|
+
flushQueuedNotificationBundle()
|
|
80
|
+
JPushInterface.setNotificationCallBackEnable(ctx, true)
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
override fun setupWithConfig(appKey: String, channel: String, production: Boolean) {
|
|
84
|
+
val ctx = getAppContext()
|
|
85
|
+
OneKeyLog.info(JLogger.TAG, "setupWithConfig channel=$channel production=$production")
|
|
86
|
+
if (appKey.isNotEmpty()) {
|
|
87
|
+
JCoreStorage.setAppKey(ctx, appKey)
|
|
88
|
+
}
|
|
89
|
+
if (channel.isNotEmpty()) {
|
|
90
|
+
JPushInterface.setChannel(ctx, channel)
|
|
91
|
+
}
|
|
92
|
+
JPushInterface.init(ctx)
|
|
93
|
+
flushQueuedNotificationBundle()
|
|
94
|
+
JPushInterface.setNotificationCallBackEnable(ctx, true)
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
override fun loadJS() {
|
|
98
|
+
flushQueuedNotificationBundle()
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
override fun stopPush() {
|
|
102
|
+
val ctx = getAppContext()
|
|
103
|
+
OneKeyLog.info(JLogger.TAG, "stopPush")
|
|
104
|
+
JPushInterface.stopPush(ctx)
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
override fun resumePush() {
|
|
108
|
+
val ctx = getAppContext()
|
|
109
|
+
OneKeyLog.info(JLogger.TAG, "resumePush")
|
|
110
|
+
JPushInterface.resumePush(ctx)
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
override fun isPushStopped(): Boolean {
|
|
114
|
+
val ctx = getAppContext()
|
|
115
|
+
return JPushInterface.isPushStopped(ctx)
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
override fun getRegistrationID(): String {
|
|
119
|
+
val ctx = getAppContext()
|
|
120
|
+
return JPushInterface.getRegistrationID(ctx) ?: ""
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
override fun isNotificationEnabled(callback: (enabled: Boolean) -> Unit) {
|
|
124
|
+
val ctx = getAppContext()
|
|
125
|
+
val enabled = if (ctx != null) JPushInterface.isNotificationEnabled(ctx) == 1 else false
|
|
126
|
+
callback(enabled)
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
override fun addTags(sequence: Double, tags: Array<String>) {
|
|
130
|
+
val ctx = getAppContext()
|
|
131
|
+
JPushInterface.addTags(ctx, sequence.toInt(), tags.toSet())
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
override fun setTags(sequence: Double, tags: Array<String>) {
|
|
135
|
+
val ctx = getAppContext()
|
|
136
|
+
JPushInterface.setTags(ctx, sequence.toInt(), tags.toSet())
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
override fun deleteTags(sequence: Double, tags: Array<String>) {
|
|
140
|
+
val ctx = getAppContext()
|
|
141
|
+
JPushInterface.deleteTags(ctx, sequence.toInt(), tags.toSet())
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
override fun cleanTags(sequence: Double) {
|
|
145
|
+
val ctx = getAppContext()
|
|
146
|
+
JPushInterface.cleanTags(ctx, sequence.toInt())
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
override fun getAllTags(sequence: Double) {
|
|
150
|
+
val ctx = getAppContext()
|
|
151
|
+
JPushInterface.getAllTags(ctx, sequence.toInt())
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
override fun checkTagBindState(sequence: Double, tag: String) {
|
|
155
|
+
val ctx = getAppContext()
|
|
156
|
+
JPushInterface.checkTagBindState(ctx, sequence.toInt(), tag)
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
override fun setAlias(sequence: Double, alias: String) {
|
|
160
|
+
val ctx = getAppContext()
|
|
161
|
+
JPushInterface.setAlias(ctx, sequence.toInt(), alias)
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
override fun deleteAlias(sequence: Double) {
|
|
165
|
+
val ctx = getAppContext()
|
|
166
|
+
JPushInterface.deleteAlias(ctx, sequence.toInt())
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
override fun getAlias(sequence: Double) {
|
|
170
|
+
val ctx = getAppContext()
|
|
171
|
+
JPushInterface.getAlias(ctx, sequence.toInt())
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
override fun setProperties(sequence: Double, propertiesJson: String) {
|
|
175
|
+
val ctx = getAppContext()
|
|
176
|
+
val map = HashMap<String, Any>()
|
|
177
|
+
if (propertiesJson.isNotEmpty()) {
|
|
178
|
+
try {
|
|
179
|
+
val json = JSONObject(propertiesJson)
|
|
180
|
+
val keys = json.keys()
|
|
181
|
+
while (keys.hasNext()) {
|
|
182
|
+
val k = keys.next()
|
|
183
|
+
val v = json.opt(k)
|
|
184
|
+
if (v != null && v != JSONObject.NULL) {
|
|
185
|
+
map[k] = v
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
} catch (_: Throwable) {
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
JPushInterface.setProperties(ctx, sequence.toInt(), map)
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
override fun deleteProperties(sequence: Double, keys: Array<String>) {
|
|
195
|
+
val ctx = getAppContext()
|
|
196
|
+
val map = HashMap<String, Any>()
|
|
197
|
+
for (k in keys) {
|
|
198
|
+
map[k] = ""
|
|
199
|
+
}
|
|
200
|
+
JPushInterface.deleteProperties(ctx, sequence.toInt(), map)
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
override fun cleanProperties(sequence: Double) {
|
|
204
|
+
val ctx = getAppContext()
|
|
205
|
+
JPushInterface.cleanProperties(ctx, sequence.toInt())
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
override fun setBadge(badge: Double, appBadge: Double) {
|
|
209
|
+
val ctx = getAppContext()
|
|
210
|
+
JPushInterface.setBadgeNumber(ctx, badge.toInt())
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
override fun setMobileNumber(sequence: Double, mobileNumber: String) {
|
|
214
|
+
val ctx = getAppContext()
|
|
215
|
+
JPushInterface.setMobileNumber(ctx, sequence.toInt(), mobileNumber)
|
|
216
|
+
}
|
|
217
|
+
|
|
218
|
+
override fun initCrashHandler() {
|
|
219
|
+
val ctx = getAppContext()
|
|
220
|
+
JPushInterface.initCrashHandler(ctx)
|
|
221
|
+
}
|
|
222
|
+
|
|
223
|
+
override fun setPowerSaveMode(enable: Boolean) {
|
|
224
|
+
val ctx = getAppContext()
|
|
225
|
+
JPushInterface.setPowerSaveMode(ctx, enable)
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
private fun resolveNotificationId(messageID: String): Long =
|
|
229
|
+
messageID.toLongOrNull() ?: messageID.hashCode().toLong()
|
|
230
|
+
|
|
231
|
+
override fun addLocalNotification(
|
|
232
|
+
messageID: String,
|
|
233
|
+
title: String,
|
|
234
|
+
content: String,
|
|
235
|
+
broadcastTime: String,
|
|
236
|
+
extrasJson: String
|
|
237
|
+
) {
|
|
238
|
+
val ctx = getAppContext()
|
|
239
|
+
val defaultPkg = ctx?.packageName ?: ""
|
|
240
|
+
val id = resolveNotificationId(messageID)
|
|
241
|
+
val notification = JPushLocalNotification()
|
|
242
|
+
notification.notificationId = id
|
|
243
|
+
notification.title = title.ifEmpty { defaultPkg }
|
|
244
|
+
notification.content = content.ifEmpty { defaultPkg }
|
|
245
|
+
val timeMs = broadcastTime.toLongOrNull() ?: 0L
|
|
246
|
+
if (timeMs > 0L) {
|
|
247
|
+
notification.setBroadcastTime(timeMs)
|
|
248
|
+
}
|
|
249
|
+
if (extrasJson.isNotEmpty() && extrasJson != "{}") {
|
|
250
|
+
notification.extras = extrasJson
|
|
251
|
+
}
|
|
252
|
+
JPushInterface.addLocalNotification(ctx, notification)
|
|
253
|
+
}
|
|
254
|
+
|
|
255
|
+
override fun removeLocalNotification(messageID: String) {
|
|
256
|
+
val ctx = getAppContext()
|
|
257
|
+
if (messageID.isEmpty()) return
|
|
258
|
+
val id = resolveNotificationId(messageID)
|
|
259
|
+
JPushInterface.removeLocalNotification(ctx, id)
|
|
260
|
+
}
|
|
261
|
+
|
|
262
|
+
override fun clearLocalNotifications() {
|
|
263
|
+
val ctx = getAppContext()
|
|
264
|
+
JPushInterface.clearLocalNotifications(ctx)
|
|
265
|
+
}
|
|
266
|
+
|
|
267
|
+
override fun clearAllNotifications() {
|
|
268
|
+
val ctx = getAppContext()
|
|
269
|
+
JPushInterface.clearAllNotifications(ctx)
|
|
270
|
+
}
|
|
271
|
+
|
|
272
|
+
override fun clearNotificationById(notificationId: Double) {
|
|
273
|
+
val ctx = getAppContext()
|
|
274
|
+
JPushInterface.clearNotificationById(ctx, notificationId.toInt())
|
|
275
|
+
}
|
|
276
|
+
|
|
277
|
+
override fun requestPermission() {
|
|
278
|
+
val reactCtx = getReactContext()
|
|
279
|
+
val target: Context? = reactCtx?.currentActivity ?: getAppContext()
|
|
280
|
+
if (target != null) {
|
|
281
|
+
JPushInterface.requestPermission(target)
|
|
282
|
+
}
|
|
283
|
+
}
|
|
284
|
+
|
|
285
|
+
override fun setPushTime(days: DoubleArray, startHour: Double, endHour: Double) {
|
|
286
|
+
val ctx = getAppContext()
|
|
287
|
+
val daySet = HashSet<Int>()
|
|
288
|
+
for (d in days) {
|
|
289
|
+
val dayInt = d.toInt()
|
|
290
|
+
if (dayInt in 0..6) {
|
|
291
|
+
daySet.add(dayInt)
|
|
292
|
+
}
|
|
293
|
+
}
|
|
294
|
+
JPushInterface.setPushTime(ctx, daySet, startHour.toInt(), endHour.toInt())
|
|
295
|
+
}
|
|
296
|
+
|
|
297
|
+
override fun setSilenceTime(
|
|
298
|
+
startHour: Double,
|
|
299
|
+
startMinute: Double,
|
|
300
|
+
endHour: Double,
|
|
301
|
+
endMinute: Double
|
|
302
|
+
) {
|
|
303
|
+
val ctx = getAppContext()
|
|
304
|
+
JPushInterface.setSilenceTime(
|
|
305
|
+
ctx,
|
|
306
|
+
startHour.toInt(),
|
|
307
|
+
startMinute.toInt(),
|
|
308
|
+
endHour.toInt(),
|
|
309
|
+
endMinute.toInt()
|
|
310
|
+
)
|
|
311
|
+
}
|
|
312
|
+
|
|
313
|
+
override fun setLatestNotificationNumber(maxNumber: Double) {
|
|
314
|
+
val ctx = getAppContext()
|
|
315
|
+
JPushInterface.setLatestNotificationNumber(ctx, maxNumber.toInt())
|
|
316
|
+
}
|
|
317
|
+
|
|
318
|
+
override fun setChannel(channel: String) {
|
|
319
|
+
val ctx = getAppContext()
|
|
320
|
+
if (channel.isNotEmpty()) {
|
|
321
|
+
JPushInterface.setChannel(ctx, channel)
|
|
322
|
+
}
|
|
323
|
+
}
|
|
324
|
+
|
|
325
|
+
override fun setChannelAndSound(channel: String, channelId: String, sound: String) {
|
|
326
|
+
val ctx = getAppContext()
|
|
327
|
+
if (channel.isEmpty() || channelId.isEmpty()) {
|
|
328
|
+
return
|
|
329
|
+
}
|
|
330
|
+
try {
|
|
331
|
+
if (ctx != null && Build.VERSION.SDK_INT >= 26) {
|
|
332
|
+
val manager = ctx.getSystemService(Context.NOTIFICATION_SERVICE) as? NotificationManager
|
|
333
|
+
val notifChannel = NotificationChannel(
|
|
334
|
+
channelId,
|
|
335
|
+
channel,
|
|
336
|
+
NotificationManager.IMPORTANCE_HIGH
|
|
337
|
+
)
|
|
338
|
+
if (sound.isNotEmpty()) {
|
|
339
|
+
notifChannel.setSound(
|
|
340
|
+
Uri.parse("android.resource://${ctx.packageName}/raw/$sound"),
|
|
341
|
+
null
|
|
342
|
+
)
|
|
343
|
+
}
|
|
344
|
+
manager?.createNotificationChannel(notifChannel)
|
|
345
|
+
}
|
|
346
|
+
JPushInterface.setChannel(ctx, channel)
|
|
347
|
+
} catch (_: Throwable) {
|
|
348
|
+
}
|
|
349
|
+
}
|
|
350
|
+
|
|
351
|
+
override fun setLinkMergeEnable(enable: Boolean) {
|
|
352
|
+
val ctx = getAppContext()
|
|
353
|
+
JPushInterface.setLinkMergeEnable(ctx, enable)
|
|
354
|
+
}
|
|
355
|
+
|
|
356
|
+
override fun setSmartPushEnable(enable: Boolean) {
|
|
357
|
+
val ctx = getAppContext()
|
|
358
|
+
JPushInterface.setSmartPushEnable(ctx, enable)
|
|
359
|
+
}
|
|
360
|
+
|
|
361
|
+
override fun setDataInsightsEnable(enable: Boolean) {
|
|
362
|
+
val ctx = getAppContext()
|
|
363
|
+
JPushInterface.setDataInsightsEnable(ctx, enable)
|
|
364
|
+
}
|
|
365
|
+
|
|
366
|
+
override fun setGeofenceEnable(enable: Boolean) {
|
|
367
|
+
val ctx = getAppContext()
|
|
368
|
+
JPushInterface.setGeofenceEnable(ctx, enable)
|
|
369
|
+
}
|
|
370
|
+
|
|
371
|
+
override fun setBackgroundEnable(enable: Boolean) {
|
|
372
|
+
// iOS-only; no-op on Android
|
|
373
|
+
}
|
|
374
|
+
|
|
375
|
+
override fun setMaxGeofenceNumber(maxNumber: Double) {
|
|
376
|
+
val ctx = getAppContext()
|
|
377
|
+
JPushInterface.setMaxGeofenceNumber(ctx, maxNumber.toInt())
|
|
378
|
+
}
|
|
379
|
+
|
|
380
|
+
override fun deleteGeofence(geoFenceID: String) {
|
|
381
|
+
val ctx = getAppContext()
|
|
382
|
+
JPushInterface.deleteGeofence(ctx, geoFenceID)
|
|
383
|
+
}
|
|
384
|
+
|
|
385
|
+
override fun pageEnterTo(pageName: String) {
|
|
386
|
+
// Handled on iOS; no-op on Android
|
|
387
|
+
}
|
|
388
|
+
|
|
389
|
+
override fun pageLeave(pageName: String) {
|
|
390
|
+
// Handled on iOS; no-op on Android
|
|
391
|
+
}
|
|
392
|
+
|
|
393
|
+
override fun setCollectControl(
|
|
394
|
+
imei: Boolean,
|
|
395
|
+
imsi: Boolean,
|
|
396
|
+
mac: Boolean,
|
|
397
|
+
wifi: Boolean,
|
|
398
|
+
bssid: Boolean,
|
|
399
|
+
ssid: Boolean,
|
|
400
|
+
cell: Boolean,
|
|
401
|
+
gps: Boolean
|
|
402
|
+
) {
|
|
403
|
+
val ctx = getAppContext()
|
|
404
|
+
val control = JPushCollectControl.Builder()
|
|
405
|
+
.imei(imei)
|
|
406
|
+
.imsi(imsi)
|
|
407
|
+
.mac(mac)
|
|
408
|
+
.wifi(wifi)
|
|
409
|
+
.bssid(bssid)
|
|
410
|
+
.ssid(ssid)
|
|
411
|
+
.cell(cell)
|
|
412
|
+
.build()
|
|
413
|
+
JPushInterface.setCollectControl(ctx, control)
|
|
414
|
+
}
|
|
415
|
+
|
|
416
|
+
override fun setAuth(auth: Boolean) {
|
|
417
|
+
val ctx = getAppContext()
|
|
418
|
+
JCollectionAuth.setAuth(ctx, auth)
|
|
419
|
+
}
|
|
420
|
+
|
|
421
|
+
override fun setCountryCode(code: String) {
|
|
422
|
+
val ctx = getAppContext()
|
|
423
|
+
if (code.isNotEmpty()) {
|
|
424
|
+
JCoreInterface.setCountryCode(ctx, code)
|
|
425
|
+
}
|
|
426
|
+
}
|
|
427
|
+
|
|
428
|
+
override fun enableAutoWakeup(enable: Boolean) {
|
|
429
|
+
val ctx = getAppContext()
|
|
430
|
+
JCollectionAuth.enableAutoWakeup(ctx, enable)
|
|
431
|
+
}
|
|
432
|
+
|
|
433
|
+
override fun enableSDKLocalLog(enable: Boolean, uploadJgToServer: Boolean) {
|
|
434
|
+
val ctx = getAppContext()
|
|
435
|
+
JCoreInterface.enableSDKLocalLog(ctx, enable, uploadJgToServer)
|
|
436
|
+
}
|
|
437
|
+
|
|
438
|
+
override fun readNewLogs(): String {
|
|
439
|
+
val ctx = getAppContext()
|
|
440
|
+
return JCoreInterface.readNewLogs(ctx) ?: ""
|
|
441
|
+
}
|
|
442
|
+
|
|
443
|
+
override fun addEventListener(
|
|
444
|
+
callback: (eventName: String, payloadJson: String) -> Unit
|
|
445
|
+
): Double {
|
|
446
|
+
val id = JPushHelper.registerNitroListener { eventName, payloadJson ->
|
|
447
|
+
callback(eventName, payloadJson)
|
|
448
|
+
}
|
|
449
|
+
return id.toDouble()
|
|
450
|
+
}
|
|
451
|
+
|
|
452
|
+
override fun removeEventListener(id: Double) {
|
|
453
|
+
JPushHelper.unregisterNitroListener(id.toInt())
|
|
454
|
+
}
|
|
455
|
+
}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
package com.margelo.nitro.reactnativejpush
|
|
2
|
+
|
|
3
|
+
import com.facebook.react.BaseReactPackage
|
|
4
|
+
import com.facebook.react.bridge.NativeModule
|
|
5
|
+
import com.facebook.react.bridge.ReactApplicationContext
|
|
6
|
+
import com.facebook.react.module.model.ReactModuleInfo
|
|
7
|
+
import com.facebook.react.module.model.ReactModuleInfoProvider
|
|
8
|
+
import cn.jiguang.plugins.core.JCoreModule
|
|
9
|
+
import cn.jiguang.plugins.push.JPushModule
|
|
10
|
+
|
|
11
|
+
class ReactNativeJpushPackage : BaseReactPackage() {
|
|
12
|
+
override fun getModule(name: String, reactContext: ReactApplicationContext): NativeModule? {
|
|
13
|
+
JPushModule.registerReactContext(reactContext)
|
|
14
|
+
JCoreModule.reactContext = reactContext
|
|
15
|
+
return when (name) {
|
|
16
|
+
"JPushModule" -> JPushModule(reactContext)
|
|
17
|
+
"JCoreModule" -> JCoreModule(reactContext)
|
|
18
|
+
else -> null
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
override fun getReactModuleInfoProvider(): ReactModuleInfoProvider {
|
|
23
|
+
return ReactModuleInfoProvider {
|
|
24
|
+
val map = HashMap<String, ReactModuleInfo>()
|
|
25
|
+
map["JPushModule"] = ReactModuleInfo(
|
|
26
|
+
"JPushModule",
|
|
27
|
+
JPushModule::class.java.name,
|
|
28
|
+
true,
|
|
29
|
+
true,
|
|
30
|
+
false,
|
|
31
|
+
false
|
|
32
|
+
)
|
|
33
|
+
map["JCoreModule"] = ReactModuleInfo(
|
|
34
|
+
"JCoreModule",
|
|
35
|
+
JCoreModule::class.java.name,
|
|
36
|
+
true,
|
|
37
|
+
true,
|
|
38
|
+
false,
|
|
39
|
+
false
|
|
40
|
+
)
|
|
41
|
+
map
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
companion object {
|
|
46
|
+
init {
|
|
47
|
+
System.loadLibrary("reactnativejpush")
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?>
|
|
2
|
+
<resources>
|
|
3
|
+
<string name="jg_channel_name_p_min">LOW</string>
|
|
4
|
+
<string name="jg_channel_name_p_low">LOW</string>
|
|
5
|
+
<string name="jg_channel_name_p_default">NORMAL</string>
|
|
6
|
+
<string name="jg_channel_name_p_high">HIGH</string>
|
|
7
|
+
</resources>
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?>
|
|
2
|
+
<resources xmlns:android="http://schemas.android.com/apk/res/android">
|
|
3
|
+
<style name="MyDialogStyle">
|
|
4
|
+
<item name="android:windowBackground">@android:color/transparent</item>
|
|
5
|
+
<item name="android:windowFrame">@null</item>
|
|
6
|
+
<item name="android:windowNoTitle">true</item>
|
|
7
|
+
<item name="android:windowIsFloating">true</item>
|
|
8
|
+
<item name="android:windowIsTranslucent">true</item>
|
|
9
|
+
<item name="android:windowContentOverlay">@null</item>
|
|
10
|
+
<item name="android:windowAnimationStyle">@android:style/Animation.Dialog</item>
|
|
11
|
+
<item name="android:backgroundDimEnabled">true</item>
|
|
12
|
+
</style>
|
|
13
|
+
<style name="JPushTheme">
|
|
14
|
+
<item name="android:windowNoTitle">true</item>
|
|
15
|
+
<item name="android:windowActionBar">false</item>
|
|
16
|
+
<item name="android:windowFullscreen">true</item>
|
|
17
|
+
<item name="android:windowContentOverlay">@null</item>
|
|
18
|
+
<item name="android:textAllCaps">false</item>
|
|
19
|
+
<item name="android:windowIsTranslucent">true</item>
|
|
20
|
+
<item name="android:windowBackground">@android:color/transparent</item>
|
|
21
|
+
</style>
|
|
22
|
+
</resources>
|