rn-erxes-sdk 0.4.6 → 0.5.0
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/android/build.gradle +76 -0
- package/android/gradle.properties +7 -0
- package/android/src/main/AndroidManifest.xml +6 -0
- package/android/src/main/java/com/erxessdk/RnErxesSdkModule.kt +286 -0
- package/android/src/main/java/com/erxessdk/RnErxesSdkPackage.kt +15 -0
- package/lib/commonjs/ErxesMessenger.js +2 -2
- package/lib/commonjs/ErxesMessenger.js.map +1 -1
- package/lib/commonjs/nativeIos.js +3 -3
- package/lib/commonjs/nativeIos.js.map +1 -1
- package/lib/module/ErxesMessenger.js +2 -2
- package/lib/module/ErxesMessenger.js.map +1 -1
- package/lib/module/nativeIos.js +3 -3
- package/lib/module/nativeIos.js.map +1 -1
- package/lib/typescript/ErxesMessenger.d.ts.map +1 -1
- package/lib/typescript/nativeIos.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/ErxesMessenger.tsx +6 -2
- package/src/nativeIos.ts +7 -3
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
// Android native module for rn-erxes-sdk. Bridges the erxes Android Messenger
|
|
2
|
+
// SDK (com.erxes:messenger-sdk) to React Native, mirroring the iOS bridge in
|
|
3
|
+
// `ios/RnErxesSdk.swift`. Android currently implements chat mode only.
|
|
4
|
+
//
|
|
5
|
+
// Plugins (Android Gradle Plugin, Kotlin) come from the consuming app's
|
|
6
|
+
// buildscript classpath via React Native autolinking, so this module does not
|
|
7
|
+
// declare its own buildscript block — it is always built linked into an app
|
|
8
|
+
// (or an Expo prebuild), never standalone.
|
|
9
|
+
apply plugin: "com.android.library"
|
|
10
|
+
apply plugin: "org.jetbrains.kotlin.android"
|
|
11
|
+
|
|
12
|
+
def getExtOrDefault(name) {
|
|
13
|
+
return rootProject.ext.has(name) ? rootProject.ext.get(name) : project.properties["RnErxesSdk_" + name]
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
def getExtOrIntegerDefault(name) {
|
|
17
|
+
return rootProject.ext.has(name) ? rootProject.ext.get(name) : (project.properties["RnErxesSdk_" + name]).toInteger()
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
android {
|
|
21
|
+
namespace "com.erxessdk"
|
|
22
|
+
|
|
23
|
+
compileSdkVersion getExtOrIntegerDefault("compileSdkVersion")
|
|
24
|
+
|
|
25
|
+
defaultConfig {
|
|
26
|
+
// The erxes Android SDK requires API 24+.
|
|
27
|
+
minSdkVersion Math.max(24, getExtOrIntegerDefault("minSdkVersion"))
|
|
28
|
+
targetSdkVersion getExtOrIntegerDefault("targetSdkVersion")
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
buildTypes {
|
|
32
|
+
release {
|
|
33
|
+
minifyEnabled false
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
// The erxes Android SDK is compiled against Java 17.
|
|
38
|
+
compileOptions {
|
|
39
|
+
sourceCompatibility JavaVersion.VERSION_17
|
|
40
|
+
targetCompatibility JavaVersion.VERSION_17
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
kotlinOptions {
|
|
44
|
+
jvmTarget = "17"
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
repositories {
|
|
49
|
+
google()
|
|
50
|
+
mavenCentral()
|
|
51
|
+
// The erxes Android SDK is not published to a remote Maven repo yet. For local
|
|
52
|
+
// development, install it with:
|
|
53
|
+
// ./gradlew :messenger-sdk:publishToMavenLocal (run in the android-sdk checkout)
|
|
54
|
+
// which drops com.erxes:messenger-sdk:<version> into ~/.m2. When the SDK is
|
|
55
|
+
// published remotely (e.g. JitPack/Maven Central), add that repo here and drop
|
|
56
|
+
// mavenLocal().
|
|
57
|
+
mavenLocal()
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
dependencies {
|
|
61
|
+
// Version is supplied by the consuming app's React Native Gradle setup.
|
|
62
|
+
implementation "com.facebook.react:react-android"
|
|
63
|
+
|
|
64
|
+
// The erxes Android Messenger SDK (chat mode).
|
|
65
|
+
implementation "com.erxes:messenger-sdk:0.30.1"
|
|
66
|
+
|
|
67
|
+
// Needed at compile time to construct `Appearance(primaryColor: Color)`. The
|
|
68
|
+
// SDK pulls these transitively at runtime, but exposes them as `implementation`
|
|
69
|
+
// (not `api`), so we depend on them explicitly. No Compose compiler is needed —
|
|
70
|
+
// this module references `Color` only as a data type, it has no @Composable code.
|
|
71
|
+
implementation platform("androidx.compose:compose-bom:2024.12.01")
|
|
72
|
+
implementation "androidx.compose.ui:ui-graphics"
|
|
73
|
+
|
|
74
|
+
// For the StateFlow (isReady) collector on the main dispatcher.
|
|
75
|
+
implementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:1.9.0"
|
|
76
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
# Fallback build settings used when the consuming app's root project does not
|
|
2
|
+
# define these in `ext` (e.g. standalone tooling). A real React Native app
|
|
3
|
+
# overrides these via its root build.gradle `ext` block.
|
|
4
|
+
RnErxesSdk_compileSdkVersion=35
|
|
5
|
+
RnErxesSdk_minSdkVersion=24
|
|
6
|
+
RnErxesSdk_targetSdkVersion=34
|
|
7
|
+
RnErxesSdk_kotlinVersion=2.0.21
|
|
@@ -0,0 +1,286 @@
|
|
|
1
|
+
package com.erxessdk
|
|
2
|
+
|
|
3
|
+
import androidx.compose.ui.graphics.Color
|
|
4
|
+
import com.erxes.messenger.ErxesMessenger
|
|
5
|
+
import com.erxes.messenger.config.ActionItem
|
|
6
|
+
import com.erxes.messenger.config.Appearance
|
|
7
|
+
import com.erxes.messenger.config.DisplayMode
|
|
8
|
+
import com.erxes.messenger.config.MessengerConfig
|
|
9
|
+
import com.erxes.messenger.config.MessengerUser
|
|
10
|
+
import com.facebook.react.bridge.Arguments
|
|
11
|
+
import com.facebook.react.bridge.Promise
|
|
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.UiThreadUtil
|
|
18
|
+
import com.facebook.react.bridge.WritableMap
|
|
19
|
+
import com.facebook.react.modules.core.DeviceEventManagerModule
|
|
20
|
+
import kotlinx.coroutines.CoroutineScope
|
|
21
|
+
import kotlinx.coroutines.Dispatchers
|
|
22
|
+
import kotlinx.coroutines.SupervisorJob
|
|
23
|
+
import kotlinx.coroutines.cancel
|
|
24
|
+
import kotlinx.coroutines.flow.distinctUntilChanged
|
|
25
|
+
import kotlinx.coroutines.flow.filter
|
|
26
|
+
import kotlinx.coroutines.launch
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* React Native bridge for the erxes Android Messenger SDK. Counterpart to the
|
|
30
|
+
* iOS `RnErxesSdk` (see `ios/RnErxesSdk.swift`); the native module name, method
|
|
31
|
+
* names, and event names match so the shared JS layer (`src/nativeIos.ts`) and
|
|
32
|
+
* `NativeEventEmitter` wiring work unchanged across platforms.
|
|
33
|
+
*
|
|
34
|
+
* Android implements **chat mode** only. The classic-mode launcher/imperative-hide
|
|
35
|
+
* methods (`showLauncher`/`hideLauncher`/`hideMessenger`) have no Android SDK
|
|
36
|
+
* equivalent and are no-ops here so the cross-platform JS contract resolves
|
|
37
|
+
* identically.
|
|
38
|
+
*/
|
|
39
|
+
class RnErxesSdkModule(private val reactContext: ReactApplicationContext) :
|
|
40
|
+
ReactContextBaseJavaModule(reactContext) {
|
|
41
|
+
|
|
42
|
+
/** Replaced on each `configure()`; collects `ErxesMessenger.isReady`. */
|
|
43
|
+
private var readyScope: CoroutineScope? = null
|
|
44
|
+
|
|
45
|
+
/** Active JS listener count — mirrors iOS `hasListeners` so we don't emit into the void. */
|
|
46
|
+
private var listenerCount = 0
|
|
47
|
+
|
|
48
|
+
override fun getName(): String = NAME
|
|
49
|
+
|
|
50
|
+
// region Configuration
|
|
51
|
+
|
|
52
|
+
@ReactMethod
|
|
53
|
+
fun configure(options: ReadableMap, promise: Promise) {
|
|
54
|
+
val integrationId = options.stringOrNull("integrationId")
|
|
55
|
+
if (integrationId.isNullOrEmpty()) {
|
|
56
|
+
promise.reject("missing_integration_id", "integrationId is required")
|
|
57
|
+
return
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
val endpoint = endpoint(options)
|
|
61
|
+
if (endpoint == null) {
|
|
62
|
+
promise.reject("missing_endpoint", "endpoint, serverUrl, or subDomain is required")
|
|
63
|
+
return
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
// Mirrors iOS: default to classic, opt into chat with displayMode: 'chat'.
|
|
67
|
+
val displayMode = when (options.stringOrNull("displayMode")) {
|
|
68
|
+
"chat" -> DisplayMode.CHAT
|
|
69
|
+
else -> DisplayMode.CLASSIC
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
val appearance = hexColor(options.stringOrNull("primaryColor"))
|
|
73
|
+
?.let { Appearance(primaryColor = it) }
|
|
74
|
+
?: Appearance()
|
|
75
|
+
|
|
76
|
+
val config = MessengerConfig(
|
|
77
|
+
endpoint = endpoint,
|
|
78
|
+
integrationId = integrationId,
|
|
79
|
+
cachedCustomerId = options.stringOrNull("cachedCustomerId"),
|
|
80
|
+
appearance = appearance,
|
|
81
|
+
displayMode = displayMode,
|
|
82
|
+
homeActions = actionItems(options.arrayOrNull("homeActions")),
|
|
83
|
+
drawerActions = actionItems(options.arrayOrNull("drawerActions")),
|
|
84
|
+
)
|
|
85
|
+
|
|
86
|
+
// Route chat-mode action taps to JS as `onErxesAction` events.
|
|
87
|
+
ErxesMessenger.onAction = { id ->
|
|
88
|
+
if (listenerCount > 0) {
|
|
89
|
+
emit(ACTION_EVENT, Arguments.createMap().apply { putString("id", id) })
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
// Forward the connect handshake to JS as `onErxesReady`. `isReady` is a
|
|
94
|
+
// StateFlow, so it replays its current value on collection — a `configure()`
|
|
95
|
+
// after the SDK is already connected still notifies JS. `distinctUntilChanged`
|
|
96
|
+
// + `filter { it }` mirror the iOS Combine pipeline (one emission per connect).
|
|
97
|
+
readyScope?.cancel()
|
|
98
|
+
val scope = CoroutineScope(SupervisorJob() + Dispatchers.Main.immediate)
|
|
99
|
+
readyScope = scope
|
|
100
|
+
scope.launch {
|
|
101
|
+
ErxesMessenger.isReady
|
|
102
|
+
.distinctUntilChanged()
|
|
103
|
+
.filter { it }
|
|
104
|
+
.collect {
|
|
105
|
+
if (listenerCount > 0) {
|
|
106
|
+
emit(READY_EVENT, null)
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
// `configure()` registers chat-mode auto-present via activity lifecycle
|
|
112
|
+
// callbacks, so run it on the main thread.
|
|
113
|
+
UiThreadUtil.runOnUiThread {
|
|
114
|
+
ErxesMessenger.configure(reactContext.applicationContext, config)
|
|
115
|
+
promise.resolve(null)
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
// endregion
|
|
120
|
+
|
|
121
|
+
// region User
|
|
122
|
+
|
|
123
|
+
@ReactMethod
|
|
124
|
+
fun setUser(options: ReadableMap, promise: Promise) {
|
|
125
|
+
// Note: iOS `MessengerUser` carries `customData`; the Android SDK's
|
|
126
|
+
// `MessengerUser` does not, so `customData` is accepted but ignored here.
|
|
127
|
+
ErxesMessenger.setUser(
|
|
128
|
+
MessengerUser(
|
|
129
|
+
email = options.stringOrNull("email"),
|
|
130
|
+
name = options.stringOrNull("name"),
|
|
131
|
+
phone = options.stringOrNull("phone"),
|
|
132
|
+
)
|
|
133
|
+
)
|
|
134
|
+
promise.resolve(null)
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
@ReactMethod
|
|
138
|
+
fun clearUser(promise: Promise) {
|
|
139
|
+
ErxesMessenger.clearUser()
|
|
140
|
+
promise.resolve(null)
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
// endregion
|
|
144
|
+
|
|
145
|
+
// region Presentation
|
|
146
|
+
|
|
147
|
+
@ReactMethod
|
|
148
|
+
fun showMessenger(promise: Promise) {
|
|
149
|
+
val activity = currentActivity
|
|
150
|
+
if (activity == null) {
|
|
151
|
+
promise.reject("missing_presenter", "Unable to find an activity to present from")
|
|
152
|
+
return
|
|
153
|
+
}
|
|
154
|
+
UiThreadUtil.runOnUiThread {
|
|
155
|
+
runCatching { ErxesMessenger.show(activity) }
|
|
156
|
+
.onSuccess { promise.resolve(null) }
|
|
157
|
+
.onFailure { promise.reject("show_failed", it.message, it) }
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
// The launcher visibility / imperative-hide methods are classic-mode iOS
|
|
162
|
+
// concepts with no Android SDK equivalent (chat mode auto-presents and is
|
|
163
|
+
// dismissed by the user). No-op so the shared JS contract resolves identically.
|
|
164
|
+
|
|
165
|
+
@ReactMethod
|
|
166
|
+
fun hideMessenger(promise: Promise) {
|
|
167
|
+
promise.resolve(null)
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
@ReactMethod
|
|
171
|
+
fun showLauncher(promise: Promise) {
|
|
172
|
+
promise.resolve(null)
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
@ReactMethod
|
|
176
|
+
fun hideLauncher(promise: Promise) {
|
|
177
|
+
promise.resolve(null)
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
// endregion
|
|
181
|
+
|
|
182
|
+
// region Event emitter plumbing (required by NativeEventEmitter on Android)
|
|
183
|
+
|
|
184
|
+
@ReactMethod
|
|
185
|
+
fun addListener(eventName: String) {
|
|
186
|
+
listenerCount += 1
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
@ReactMethod
|
|
190
|
+
fun removeListeners(count: Int) {
|
|
191
|
+
listenerCount = (listenerCount - count).coerceAtLeast(0)
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
override fun invalidate() {
|
|
195
|
+
readyScope?.cancel()
|
|
196
|
+
readyScope = null
|
|
197
|
+
ErxesMessenger.onAction = null
|
|
198
|
+
listenerCount = 0
|
|
199
|
+
super.invalidate()
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
private fun emit(name: String, body: WritableMap?) {
|
|
203
|
+
reactContext
|
|
204
|
+
.getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter::class.java)
|
|
205
|
+
.emit(name, body)
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
// endregion
|
|
209
|
+
|
|
210
|
+
// region Parsing helpers (ported from the iOS bridge)
|
|
211
|
+
|
|
212
|
+
private fun endpoint(options: ReadableMap): String? {
|
|
213
|
+
options.stringOrNull("endpoint")?.let { return it }
|
|
214
|
+
options.stringOrNull("serverUrl")?.let { return it }
|
|
215
|
+
|
|
216
|
+
val subDomain = options.stringOrNull("subDomain") ?: return null
|
|
217
|
+
return if (subDomain.startsWith("http://") || subDomain.startsWith("https://")) {
|
|
218
|
+
subDomain
|
|
219
|
+
} else {
|
|
220
|
+
"https://$subDomain"
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
/**
|
|
225
|
+
* Parse `[{ id, title, systemIcon }]` from JS into `[ActionItem]`. Entries
|
|
226
|
+
* without an `id` are skipped. The iOS `systemIcon` (an SF Symbol name) has no
|
|
227
|
+
* Android equivalent — Android `ActionItem` icons are vectors/drawables — so it
|
|
228
|
+
* is ignored; the action still works via `id`/`title`.
|
|
229
|
+
*/
|
|
230
|
+
private fun actionItems(value: ReadableArray?): List<ActionItem> {
|
|
231
|
+
if (value == null) return emptyList()
|
|
232
|
+
val items = mutableListOf<ActionItem>()
|
|
233
|
+
for (i in 0 until value.size()) {
|
|
234
|
+
val map = value.getMap(i) ?: continue
|
|
235
|
+
val id = map.stringOrNull("id") ?: continue
|
|
236
|
+
items.add(ActionItem(id = id, title = map.stringOrNull("title") ?: ""))
|
|
237
|
+
}
|
|
238
|
+
return items
|
|
239
|
+
}
|
|
240
|
+
|
|
241
|
+
/** Parse a `#RGB`/`#RRGGBB`/`#RRGGBBAA` hex string into a Compose [Color]. */
|
|
242
|
+
private fun hexColor(value: String?): Color? {
|
|
243
|
+
var hex = value?.trim()?.removePrefix("#") ?: return null
|
|
244
|
+
|
|
245
|
+
// Expand shorthand #RGB to #RRGGBB.
|
|
246
|
+
if (hex.length == 3) {
|
|
247
|
+
hex = hex.map { "$it$it" }.joinToString("")
|
|
248
|
+
}
|
|
249
|
+
|
|
250
|
+
if (hex.length != 6 && hex.length != 8) return null
|
|
251
|
+
val intValue = hex.toLongOrNull(16) ?: return null
|
|
252
|
+
|
|
253
|
+
return if (hex.length == 8) {
|
|
254
|
+
Color(
|
|
255
|
+
red = ((intValue shr 24) and 0xFF).toInt(),
|
|
256
|
+
green = ((intValue shr 16) and 0xFF).toInt(),
|
|
257
|
+
blue = ((intValue shr 8) and 0xFF).toInt(),
|
|
258
|
+
alpha = (intValue and 0xFF).toInt(),
|
|
259
|
+
)
|
|
260
|
+
} else {
|
|
261
|
+
Color(
|
|
262
|
+
red = ((intValue shr 16) and 0xFF).toInt(),
|
|
263
|
+
green = ((intValue shr 8) and 0xFF).toInt(),
|
|
264
|
+
blue = (intValue and 0xFF).toInt(),
|
|
265
|
+
)
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
|
|
269
|
+
private fun ReadableMap.stringOrNull(key: String): String? =
|
|
270
|
+
if (hasKey(key) && !isNull(key)) getString(key)?.ifEmpty { null } else null
|
|
271
|
+
|
|
272
|
+
private fun ReadableMap.arrayOrNull(key: String): ReadableArray? =
|
|
273
|
+
if (hasKey(key) && !isNull(key)) getArray(key) else null
|
|
274
|
+
|
|
275
|
+
// endregion
|
|
276
|
+
|
|
277
|
+
companion object {
|
|
278
|
+
const val NAME = "RnErxesSdk"
|
|
279
|
+
|
|
280
|
+
/** JS event fired when a chat-mode action is tapped. */
|
|
281
|
+
private const val ACTION_EVENT = "onErxesAction"
|
|
282
|
+
|
|
283
|
+
/** JS event fired when the connect handshake completes. */
|
|
284
|
+
private const val READY_EVENT = "onErxesReady"
|
|
285
|
+
}
|
|
286
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
package com.erxessdk
|
|
2
|
+
|
|
3
|
+
import com.facebook.react.ReactPackage
|
|
4
|
+
import com.facebook.react.bridge.NativeModule
|
|
5
|
+
import com.facebook.react.bridge.ReactApplicationContext
|
|
6
|
+
import com.facebook.react.uimanager.ViewManager
|
|
7
|
+
|
|
8
|
+
/** Registers [RnErxesSdkModule] with React Native. Discovered via autolinking. */
|
|
9
|
+
class RnErxesSdkPackage : ReactPackage {
|
|
10
|
+
override fun createNativeModules(reactContext: ReactApplicationContext): List<NativeModule> =
|
|
11
|
+
listOf(RnErxesSdkModule(reactContext))
|
|
12
|
+
|
|
13
|
+
override fun createViewManagers(reactContext: ReactApplicationContext): List<ViewManager<*, *>> =
|
|
14
|
+
emptyList()
|
|
15
|
+
}
|
|
@@ -102,7 +102,7 @@ function ErxesMessenger(_ref2) {
|
|
|
102
102
|
onActionRef.current = onAction;
|
|
103
103
|
}, [homeActions, drawerActions, onAction]);
|
|
104
104
|
(0, _react.useEffect)(() => {
|
|
105
|
-
if (_reactNative.Platform.OS !== 'ios') {
|
|
105
|
+
if (_reactNative.Platform.OS !== 'ios' && _reactNative.Platform.OS !== 'android') {
|
|
106
106
|
return;
|
|
107
107
|
}
|
|
108
108
|
setConfigured(false);
|
|
@@ -212,7 +212,7 @@ function ErxesMessenger(_ref2) {
|
|
|
212
212
|
// Wait until `configure()` has resolved — otherwise `showMessenger()` would
|
|
213
213
|
// race ahead of it and trip the native configure-before-show assertion. The
|
|
214
214
|
// initial open is handled in `setup()`; this only reacts to later changes.
|
|
215
|
-
if (_reactNative.Platform.OS !== 'ios' || visible === undefined || !configured) {
|
|
215
|
+
if (_reactNative.Platform.OS !== 'ios' && _reactNative.Platform.OS !== 'android' || visible === undefined || !configured) {
|
|
216
216
|
return;
|
|
217
217
|
}
|
|
218
218
|
if (visible && !shownRef.current) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","require","_reactNative","_nativeIos","stripActions","actions","map","_ref","onPress","_onPress","nativeAction","ErxesMessenger","_ref2","integrationId","endpoint","serverUrl","subDomain","displayMode","user","cachedCustomerId","primaryColor","visible","autoOpen","autoHideOnUnmount","launcherVisible","homeActions","drawerActions","renderLoading","onLoad","onReady","onOpen","onClose","onError","onAction","onLoadingChange","actionsRef","useRef","onActionRef","onLoadingChangeRef","shownRef","configured","setConfigured","useState","loading","setLoading","useEffect","current","_onLoadingChangeRef$c","call","Platform","OS","helpers","show","ErxesNativeIOS","showMessenger","hide","hideMessenger","showLauncher","hideLauncher","setUser","nextUser","clearUser","sub","addActionListener","id","_onActionRef$current","action","find","item","readySub","addReadyListener","setup","configure","shouldOpen","error","remove","undefined"],"sourceRoot":"../../src","sources":["ErxesMessenger.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AAEA,IAAAE,UAAA,GAAAF,OAAA;AAEA;AACA;AACA;AACA;;AAGA;AACA;AACA;AACA;AACA;;AAUA;AACA;AACA;AACA;AACA;;AA0EA;AACA;AACA;AACA;AACA;AACA,SAASG,YAAYA,CAACC,OAAsB,EAAE;EAC5C,OAAOA,OAAO,CAACC,GAAG,CAACC,IAAA;IAAA,IAAC;MAAEC,OAAO,EAAEC,QAAQ;MAAE,GAAGC;IAAa,CAAC,GAAAH,IAAA;IAAA,OAAKG,YAAY;EAAA,EAAC;AAC9E;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASC,cAAcA,CAAAC,KAAA,EAuBN;EAAA,IAvBO;IAC7BC,aAAa;IACbC,QAAQ;IACRC,SAAS;IACTC,SAAS;IACTC,WAAW,GAAG,SAAS;IACvBC,IAAI;IACJC,gBAAgB;IAChBC,YAAY;IACZC,OAAO;IACPC,QAAQ,GAAGL,WAAW,KAAK,MAAM;IACjCM,iBAAiB,GAAG,IAAI;IACxBC,eAAe;IACfC,WAAW,GAAG,EAAE;IAChBC,aAAa,GAAG,EAAE;IAClBC,aAAa;IACbC,MAAM;IACNC,OAAO;IACPC,MAAM;IACNC,OAAO;IACPC,OAAO;IACPC,QAAQ;IACRC;EACmB,CAAC,GAAAtB,KAAA;EACpB;EACA;EACA,MAAMuB,UAAU,GAAG,IAAAC,aAAM,EAAgB,EAAE,CAAC;EAC5C,MAAMC,WAAW,GAAG,IAAAD,aAAM,EAACH,QAAQ,CAAC;EACpC,MAAMK,kBAAkB,GAAG,IAAAF,aAAM,EAACF,eAAe,CAAC;EAClD;EACA;EACA;EACA;EACA,MAAMK,QAAQ,GAAG,IAAAH,aAAM,EAAC,KAAK,CAAC;;EAE9B;EACA;EACA;EACA,MAAM,CAACI,UAAU,EAAEC,aAAa,CAAC,GAAG,IAAAC,eAAQ,EAAC,KAAK,CAAC;EACnD;EACA;EACA,MAAM,CAACC,OAAO,EAAEC,UAAU,CAAC,GAAG,IAAAF,eAAQ,EAAC,KAAK,CAAC;EAE7C,IAAAG,gBAAS,EAAC,MAAM;IACdP,kBAAkB,CAACQ,OAAO,GAAGZ,eAAe;EAC9C,CAAC,EAAE,CAACA,eAAe,CAAC,CAAC;EAErB,IAAAW,gBAAS,EAAC,MAAM;IAAA,IAAAE,qBAAA;IACd,CAAAA,qBAAA,GAAAT,kBAAkB,CAACQ,OAAO,cAAAC,qBAAA,uBAA1BA,qBAAA,CAAAC,IAAA,CAAAV,kBAAkB,EAAWK,OAAO,CAAC;EACvC,CAAC,EAAE,CAACA,OAAO,CAAC,CAAC;EAEb,IAAAE,gBAAS,EAAC,MAAM;IACdV,UAAU,CAACW,OAAO,GAAG,CAAC,GAAGrB,WAAW,EAAE,GAAGC,aAAa,CAAC;IACvDW,WAAW,CAACS,OAAO,GAAGb,QAAQ;EAChC,CAAC,EAAE,CAACR,WAAW,EAAEC,aAAa,EAAEO,QAAQ,CAAC,CAAC;EAE1C,IAAAY,gBAAS,EAAC,MAAM;IACd,IAAII,qBAAQ,CAACC,EAAE,KAAK,KAAK,EAAE;
|
|
1
|
+
{"version":3,"names":["_react","require","_reactNative","_nativeIos","stripActions","actions","map","_ref","onPress","_onPress","nativeAction","ErxesMessenger","_ref2","integrationId","endpoint","serverUrl","subDomain","displayMode","user","cachedCustomerId","primaryColor","visible","autoOpen","autoHideOnUnmount","launcherVisible","homeActions","drawerActions","renderLoading","onLoad","onReady","onOpen","onClose","onError","onAction","onLoadingChange","actionsRef","useRef","onActionRef","onLoadingChangeRef","shownRef","configured","setConfigured","useState","loading","setLoading","useEffect","current","_onLoadingChangeRef$c","call","Platform","OS","helpers","show","ErxesNativeIOS","showMessenger","hide","hideMessenger","showLauncher","hideLauncher","setUser","nextUser","clearUser","sub","addActionListener","id","_onActionRef$current","action","find","item","readySub","addReadyListener","setup","configure","shouldOpen","error","remove","undefined"],"sourceRoot":"../../src","sources":["ErxesMessenger.tsx"],"mappings":"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"}
|
|
@@ -16,11 +16,11 @@ const ACTION_EVENT = 'onErxesAction';
|
|
|
16
16
|
|
|
17
17
|
/** Native event name emitted when the connect handshake completes. */
|
|
18
18
|
const READY_EVENT = 'onErxesReady';
|
|
19
|
-
const LINKING_ERROR = "The rn-erxes-sdk native iOS module is not linked. Run `pod install` in your app's ios directory and rebuild the app.";
|
|
19
|
+
const LINKING_ERROR = _reactNative.Platform.OS === 'android' ? 'The rn-erxes-sdk native Android module is not linked. Rebuild the Android app (e.g. `npx react-native run-android`).' : "The rn-erxes-sdk native iOS module is not linked. Run `pod install` in your app's ios directory and rebuild the app.";
|
|
20
20
|
const nativeModule = _reactNative.NativeModules.RnErxesSdk;
|
|
21
21
|
function getNativeModule() {
|
|
22
|
-
if (_reactNative.Platform.OS !== 'ios') {
|
|
23
|
-
throw new Error('Erxes native messenger is only available on iOS.');
|
|
22
|
+
if (_reactNative.Platform.OS !== 'ios' && _reactNative.Platform.OS !== 'android') {
|
|
23
|
+
throw new Error('Erxes native messenger is only available on iOS and Android.');
|
|
24
24
|
}
|
|
25
25
|
if (!nativeModule) {
|
|
26
26
|
throw new Error(LINKING_ERROR);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNative","require","ACTION_EVENT","READY_EVENT","LINKING_ERROR","
|
|
1
|
+
{"version":3,"names":["_reactNative","require","ACTION_EVENT","READY_EVENT","LINKING_ERROR","Platform","OS","nativeModule","NativeModules","RnErxesSdk","getNativeModule","Error","ErxesNativeIOS","configure","options","setUser","customData","Object","fromEntries","entries","filter","_ref","value","undefined","map","_ref2","key","String","clearUser","showMessenger","showLauncher","hideLauncher","hideMessenger","addActionListener","handler","emitter","NativeEventEmitter","addListener","event","id","addReadyListener","exports"],"sourceRoot":"../../src","sources":["nativeIos.ts"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AAQA;AACA;AACA;AACA;AACA;;AA2CA;AACA,MAAMC,YAAY,GAAG,eAAe;;AAEpC;AACA,MAAMC,WAAW,GAAG,cAAc;AAElC,MAAMC,aAAa,GACjBC,qBAAQ,CAACC,EAAE,KAAK,SAAS,GACrB,sHAAsH,GACtH,sHAAsH;AAE5H,MAAMC,YAAY,GAAGC,0BAAa,CAACC,UAAyC;AAE5E,SAASC,eAAeA,CAAA,EAAoB;EAC1C,IAAIL,qBAAQ,CAACC,EAAE,KAAK,KAAK,IAAID,qBAAQ,CAACC,EAAE,KAAK,SAAS,EAAE;IACtD,MAAM,IAAIK,KAAK,CACb,8DACF,CAAC;EACH;EAEA,IAAI,CAACJ,YAAY,EAAE;IACjB,MAAM,IAAII,KAAK,CAACP,aAAa,CAAC;EAChC;EAEA,OAAOG,YAAY;AACrB;AAEO,MAAMK,cAAc,GAAG;EAC5BC,SAASA,CAACC,OAAwB,EAAE;IAClC,OAAOJ,eAAe,CAAC,CAAC,CAACG,SAAS,CAACC,OAAO,CAAC;EAC7C,CAAC;EACDC,OAAOA,CAACD,OAAsB,EAAE;IAC9B,MAAME,UAAU,GAAGC,MAAM,CAACC,WAAW,CACnCD,MAAM,CAACE,OAAO,CAACL,OAAO,CAACE,UAAU,IAAI,CAAC,CAAC,CAAC,CACrCI,MAAM,CAACC,IAAA;MAAA,IAAC,GAAGC,KAAK,CAAC,GAAAD,IAAA;MAAA,OAAKC,KAAK,KAAK,IAAI,IAAIA,KAAK,KAAKC,SAAS;IAAA,EAAC,CAC5DC,GAAG,CAACC,KAAA;MAAA,IAAC,CAACC,GAAG,EAAEJ,KAAK,CAAC,GAAAG,KAAA;MAAA,OAAK,CAACC,GAAG,EAAEC,MAAM,CAACL,KAAK,CAAC,CAAC;IAAA,EAC/C,CAAC;IAED,OAAOZ,eAAe,CAAC,CAAC,CAACK,OAAO,CAAC;MAC/B,GAAGD,OAAO;MACVE;IACF,CAAC,CAAC;EACJ,CAAC;EACDY,SAASA,CAAA,EAAG;IACV,OAAOlB,eAAe,CAAC,CAAC,CAACkB,SAAS,CAAC,CAAC;EACtC,CAAC;EACDC,aAAaA,CAAA,EAAG;IACd,OAAOnB,eAAe,CAAC,CAAC,CAACmB,aAAa,CAAC,CAAC;EAC1C,CAAC;EACDC,YAAYA,CAAA,EAAG;IACb,OAAOpB,eAAe,CAAC,CAAC,CAACoB,YAAY,CAAC,CAAC;EACzC,CAAC;EACDC,YAAYA,CAAA,EAAG;IACb,OAAOrB,eAAe,CAAC,CAAC,CAACqB,YAAY,CAAC,CAAC;EACzC,CAAC;EACDC,aAAaA,CAAA,EAAG;IACd,OAAOtB,eAAe,CAAC,CAAC,CAACsB,aAAa,CAAC,CAAC;EAC1C,CAAC;EACD;AACF;AACA;AACA;AACA;AACA;EACEC,iBAAiBA,CAACC,OAA6B,EAAuB;IACpE,MAAMC,OAAO,GAAG,IAAIC,+BAAkB,CACpC1B,eAAe,CAAC,CAClB,CAAC;IACD,OAAOyB,OAAO,CAACE,WAAW,CAACnC,YAAY,EAAGoC,KAAqB,IAC7DJ,OAAO,CAACI,KAAK,CAACC,EAAE,CAClB,CAAC;EACH,CAAC;EACD;AACF;AACA;AACA;AACA;AACA;EACEC,gBAAgBA,CAACN,OAAmB,EAAuB;IACzD,MAAMC,OAAO,GAAG,IAAIC,+BAAkB,CACpC1B,eAAe,CAAC,CAClB,CAAC;IACD,OAAOyB,OAAO,CAACE,WAAW,CAAClC,WAAW,EAAE,MAAM+B,OAAO,CAAC,CAAC,CAAC;EAC1D;AACF,CAAC;AAACO,OAAA,CAAA7B,cAAA,GAAAA,cAAA"}
|
|
@@ -97,7 +97,7 @@ export function ErxesMessenger(_ref2) {
|
|
|
97
97
|
onActionRef.current = onAction;
|
|
98
98
|
}, [homeActions, drawerActions, onAction]);
|
|
99
99
|
useEffect(() => {
|
|
100
|
-
if (Platform.OS !== 'ios') {
|
|
100
|
+
if (Platform.OS !== 'ios' && Platform.OS !== 'android') {
|
|
101
101
|
return;
|
|
102
102
|
}
|
|
103
103
|
setConfigured(false);
|
|
@@ -207,7 +207,7 @@ export function ErxesMessenger(_ref2) {
|
|
|
207
207
|
// Wait until `configure()` has resolved — otherwise `showMessenger()` would
|
|
208
208
|
// race ahead of it and trip the native configure-before-show assertion. The
|
|
209
209
|
// initial open is handled in `setup()`; this only reacts to later changes.
|
|
210
|
-
if (Platform.OS !== 'ios' || visible === undefined || !configured) {
|
|
210
|
+
if (Platform.OS !== 'ios' && Platform.OS !== 'android' || visible === undefined || !configured) {
|
|
211
211
|
return;
|
|
212
212
|
}
|
|
213
213
|
if (visible && !shownRef.current) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useEffect","useRef","useState","Platform","ErxesNativeIOS","stripActions","actions","map","_ref","onPress","_onPress","nativeAction","ErxesMessenger","_ref2","integrationId","endpoint","serverUrl","subDomain","displayMode","user","cachedCustomerId","primaryColor","visible","autoOpen","autoHideOnUnmount","launcherVisible","homeActions","drawerActions","renderLoading","onLoad","onReady","onOpen","onClose","onError","onAction","onLoadingChange","actionsRef","onActionRef","onLoadingChangeRef","shownRef","configured","setConfigured","loading","setLoading","current","_onLoadingChangeRef$c","call","OS","helpers","show","showMessenger","hide","hideMessenger","showLauncher","hideLauncher","setUser","nextUser","clearUser","sub","addActionListener","id","_onActionRef$current","action","find","item","readySub","addReadyListener","setup","configure","shouldOpen","error","remove","undefined"],"sourceRoot":"../../src","sources":["ErxesMessenger.tsx"],"mappings":"AAAA,SAASA,SAAS,EAAEC,MAAM,EAAEC,QAAQ,QAAwB,OAAO;AACnE,SAASC,QAAQ,QAAQ,cAAc;AAEvC,SAASC,cAAc,QAA4B,aAAa;;AAEhE;AACA;AACA;AACA;;AAGA;AACA;AACA;AACA;AACA;;AAUA;AACA;AACA;AACA;AACA;;AA0EA;AACA;AACA;AACA;AACA;AACA,SAASC,YAAYA,CAACC,OAAsB,EAAE;EAC5C,OAAOA,OAAO,CAACC,GAAG,CAACC,IAAA;IAAA,IAAC;MAAEC,OAAO,EAAEC,QAAQ;MAAE,GAAGC;IAAa,CAAC,GAAAH,IAAA;IAAA,OAAKG,YAAY;EAAA,EAAC;AAC9E;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,cAAcA,CAAAC,KAAA,EAuBN;EAAA,IAvBO;IAC7BC,aAAa;IACbC,QAAQ;IACRC,SAAS;IACTC,SAAS;IACTC,WAAW,GAAG,SAAS;IACvBC,IAAI;IACJC,gBAAgB;IAChBC,YAAY;IACZC,OAAO;IACPC,QAAQ,GAAGL,WAAW,KAAK,MAAM;IACjCM,iBAAiB,GAAG,IAAI;IACxBC,eAAe;IACfC,WAAW,GAAG,EAAE;IAChBC,aAAa,GAAG,EAAE;IAClBC,aAAa;IACbC,MAAM;IACNC,OAAO;IACPC,MAAM;IACNC,OAAO;IACPC,OAAO;IACPC,QAAQ;IACRC;EACmB,CAAC,GAAAtB,KAAA;EACpB;EACA;EACA,MAAMuB,UAAU,GAAGnC,MAAM,CAAgB,EAAE,CAAC;EAC5C,MAAMoC,WAAW,GAAGpC,MAAM,CAACiC,QAAQ,CAAC;EACpC,MAAMI,kBAAkB,GAAGrC,MAAM,CAACkC,eAAe,CAAC;EAClD;EACA;EACA;EACA;EACA,MAAMI,QAAQ,GAAGtC,MAAM,CAAC,KAAK,CAAC;;EAE9B;EACA;EACA;EACA,MAAM,CAACuC,UAAU,EAAEC,aAAa,CAAC,GAAGvC,QAAQ,CAAC,KAAK,CAAC;EACnD;EACA;EACA,MAAM,CAACwC,OAAO,EAAEC,UAAU,CAAC,GAAGzC,QAAQ,CAAC,KAAK,CAAC;EAE7CF,SAAS,CAAC,MAAM;IACdsC,kBAAkB,CAACM,OAAO,GAAGT,eAAe;EAC9C,CAAC,EAAE,CAACA,eAAe,CAAC,CAAC;EAErBnC,SAAS,CAAC,MAAM;IAAA,IAAA6C,qBAAA;IACd,CAAAA,qBAAA,GAAAP,kBAAkB,CAACM,OAAO,cAAAC,qBAAA,uBAA1BA,qBAAA,CAAAC,IAAA,CAAAR,kBAAkB,EAAWI,OAAO,CAAC;EACvC,CAAC,EAAE,CAACA,OAAO,CAAC,CAAC;EAEb1C,SAAS,CAAC,MAAM;IACdoC,UAAU,CAACQ,OAAO,GAAG,CAAC,GAAGlB,WAAW,EAAE,GAAGC,aAAa,CAAC;IACvDU,WAAW,CAACO,OAAO,GAAGV,QAAQ;EAChC,CAAC,EAAE,CAACR,WAAW,EAAEC,aAAa,EAAEO,QAAQ,CAAC,CAAC;EAE1ClC,SAAS,CAAC,MAAM;IACd,IAAIG,QAAQ,CAAC4C,EAAE,KAAK,KAAK,EAAE;
|
|
1
|
+
{"version":3,"names":["useEffect","useRef","useState","Platform","ErxesNativeIOS","stripActions","actions","map","_ref","onPress","_onPress","nativeAction","ErxesMessenger","_ref2","integrationId","endpoint","serverUrl","subDomain","displayMode","user","cachedCustomerId","primaryColor","visible","autoOpen","autoHideOnUnmount","launcherVisible","homeActions","drawerActions","renderLoading","onLoad","onReady","onOpen","onClose","onError","onAction","onLoadingChange","actionsRef","onActionRef","onLoadingChangeRef","shownRef","configured","setConfigured","loading","setLoading","current","_onLoadingChangeRef$c","call","OS","helpers","show","showMessenger","hide","hideMessenger","showLauncher","hideLauncher","setUser","nextUser","clearUser","sub","addActionListener","id","_onActionRef$current","action","find","item","readySub","addReadyListener","setup","configure","shouldOpen","error","remove","undefined"],"sourceRoot":"../../src","sources":["ErxesMessenger.tsx"],"mappings":"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"}
|
package/lib/module/nativeIos.js
CHANGED
|
@@ -11,11 +11,11 @@ const ACTION_EVENT = 'onErxesAction';
|
|
|
11
11
|
|
|
12
12
|
/** Native event name emitted when the connect handshake completes. */
|
|
13
13
|
const READY_EVENT = 'onErxesReady';
|
|
14
|
-
const LINKING_ERROR = "The rn-erxes-sdk native iOS module is not linked. Run `pod install` in your app's ios directory and rebuild the app.";
|
|
14
|
+
const LINKING_ERROR = Platform.OS === 'android' ? 'The rn-erxes-sdk native Android module is not linked. Rebuild the Android app (e.g. `npx react-native run-android`).' : "The rn-erxes-sdk native iOS module is not linked. Run `pod install` in your app's ios directory and rebuild the app.";
|
|
15
15
|
const nativeModule = NativeModules.RnErxesSdk;
|
|
16
16
|
function getNativeModule() {
|
|
17
|
-
if (Platform.OS !== 'ios') {
|
|
18
|
-
throw new Error('Erxes native messenger is only available on iOS.');
|
|
17
|
+
if (Platform.OS !== 'ios' && Platform.OS !== 'android') {
|
|
18
|
+
throw new Error('Erxes native messenger is only available on iOS and Android.');
|
|
19
19
|
}
|
|
20
20
|
if (!nativeModule) {
|
|
21
21
|
throw new Error(LINKING_ERROR);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["NativeEventEmitter","NativeModules","Platform","ACTION_EVENT","READY_EVENT","LINKING_ERROR","nativeModule","RnErxesSdk","getNativeModule","
|
|
1
|
+
{"version":3,"names":["NativeEventEmitter","NativeModules","Platform","ACTION_EVENT","READY_EVENT","LINKING_ERROR","OS","nativeModule","RnErxesSdk","getNativeModule","Error","ErxesNativeIOS","configure","options","setUser","customData","Object","fromEntries","entries","filter","_ref","value","undefined","map","_ref2","key","String","clearUser","showMessenger","showLauncher","hideLauncher","hideMessenger","addActionListener","handler","emitter","addListener","event","id","addReadyListener"],"sourceRoot":"../../src","sources":["nativeIos.ts"],"mappings":"AAAA,SACEA,kBAAkB,EAClBC,aAAa,EACbC,QAAQ,QAGH,cAAc;;AAErB;AACA;AACA;AACA;AACA;;AA2CA;AACA,MAAMC,YAAY,GAAG,eAAe;;AAEpC;AACA,MAAMC,WAAW,GAAG,cAAc;AAElC,MAAMC,aAAa,GACjBH,QAAQ,CAACI,EAAE,KAAK,SAAS,GACrB,sHAAsH,GACtH,sHAAsH;AAE5H,MAAMC,YAAY,GAAGN,aAAa,CAACO,UAAyC;AAE5E,SAASC,eAAeA,CAAA,EAAoB;EAC1C,IAAIP,QAAQ,CAACI,EAAE,KAAK,KAAK,IAAIJ,QAAQ,CAACI,EAAE,KAAK,SAAS,EAAE;IACtD,MAAM,IAAII,KAAK,CACb,8DACF,CAAC;EACH;EAEA,IAAI,CAACH,YAAY,EAAE;IACjB,MAAM,IAAIG,KAAK,CAACL,aAAa,CAAC;EAChC;EAEA,OAAOE,YAAY;AACrB;AAEA,OAAO,MAAMI,cAAc,GAAG;EAC5BC,SAASA,CAACC,OAAwB,EAAE;IAClC,OAAOJ,eAAe,CAAC,CAAC,CAACG,SAAS,CAACC,OAAO,CAAC;EAC7C,CAAC;EACDC,OAAOA,CAACD,OAAsB,EAAE;IAC9B,MAAME,UAAU,GAAGC,MAAM,CAACC,WAAW,CACnCD,MAAM,CAACE,OAAO,CAACL,OAAO,CAACE,UAAU,IAAI,CAAC,CAAC,CAAC,CACrCI,MAAM,CAACC,IAAA;MAAA,IAAC,GAAGC,KAAK,CAAC,GAAAD,IAAA;MAAA,OAAKC,KAAK,KAAK,IAAI,IAAIA,KAAK,KAAKC,SAAS;IAAA,EAAC,CAC5DC,GAAG,CAACC,KAAA;MAAA,IAAC,CAACC,GAAG,EAAEJ,KAAK,CAAC,GAAAG,KAAA;MAAA,OAAK,CAACC,GAAG,EAAEC,MAAM,CAACL,KAAK,CAAC,CAAC;IAAA,EAC/C,CAAC;IAED,OAAOZ,eAAe,CAAC,CAAC,CAACK,OAAO,CAAC;MAC/B,GAAGD,OAAO;MACVE;IACF,CAAC,CAAC;EACJ,CAAC;EACDY,SAASA,CAAA,EAAG;IACV,OAAOlB,eAAe,CAAC,CAAC,CAACkB,SAAS,CAAC,CAAC;EACtC,CAAC;EACDC,aAAaA,CAAA,EAAG;IACd,OAAOnB,eAAe,CAAC,CAAC,CAACmB,aAAa,CAAC,CAAC;EAC1C,CAAC;EACDC,YAAYA,CAAA,EAAG;IACb,OAAOpB,eAAe,CAAC,CAAC,CAACoB,YAAY,CAAC,CAAC;EACzC,CAAC;EACDC,YAAYA,CAAA,EAAG;IACb,OAAOrB,eAAe,CAAC,CAAC,CAACqB,YAAY,CAAC,CAAC;EACzC,CAAC;EACDC,aAAaA,CAAA,EAAG;IACd,OAAOtB,eAAe,CAAC,CAAC,CAACsB,aAAa,CAAC,CAAC;EAC1C,CAAC;EACD;AACF;AACA;AACA;AACA;AACA;EACEC,iBAAiBA,CAACC,OAA6B,EAAuB;IACpE,MAAMC,OAAO,GAAG,IAAIlC,kBAAkB,CACpCS,eAAe,CAAC,CAClB,CAAC;IACD,OAAOyB,OAAO,CAACC,WAAW,CAAChC,YAAY,EAAGiC,KAAqB,IAC7DH,OAAO,CAACG,KAAK,CAACC,EAAE,CAClB,CAAC;EACH,CAAC;EACD;AACF;AACA;AACA;AACA;AACA;EACEC,gBAAgBA,CAACL,OAAmB,EAAuB;IACzD,MAAMC,OAAO,GAAG,IAAIlC,kBAAkB,CACpCS,eAAe,CAAC,CAClB,CAAC;IACD,OAAOyB,OAAO,CAACC,WAAW,CAAC/B,WAAW,EAAE,MAAM6B,OAAO,CAAC,CAAC,CAAC;EAC1D;AACF,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ErxesMessenger.d.ts","sourceRoot":"","sources":["../../src/ErxesMessenger.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"ErxesMessenger.d.ts","sourceRoot":"","sources":["../../src/ErxesMessenger.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nativeIos.d.ts","sourceRoot":"","sources":["../../src/nativeIos.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,mBAAmB,EAEzB,MAAM,cAAc,CAAC;AAEtB;;;;GAIG;AACH,KAAK,eAAe,GAAG;IACrB,wDAAwD;IACxD,EAAE,EAAE,MAAM,CAAC;IACX,0EAA0E;IAC1E,KAAK,EAAE,MAAM,CAAC;IACd,8CAA8C;IAC9C,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,KAAK,eAAe,GAAG;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,6EAA6E;IAC7E,WAAW,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC;IACjC,8DAA8D;IAC9D,WAAW,CAAC,EAAE,eAAe,EAAE,CAAC;IAChC,gEAAgE;IAChE,aAAa,CAAC,EAAE,eAAe,EAAE,CAAC;IAClC,8DAA8D;IAC9D,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,KAAK,aAAa,GAAG;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,CAAC,CAAC;CAC3E,CAAC;
|
|
1
|
+
{"version":3,"file":"nativeIos.d.ts","sourceRoot":"","sources":["../../src/nativeIos.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,mBAAmB,EAEzB,MAAM,cAAc,CAAC;AAEtB;;;;GAIG;AACH,KAAK,eAAe,GAAG;IACrB,wDAAwD;IACxD,EAAE,EAAE,MAAM,CAAC;IACX,0EAA0E;IAC1E,KAAK,EAAE,MAAM,CAAC;IACd,8CAA8C;IAC9C,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,KAAK,eAAe,GAAG;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,6EAA6E;IAC7E,WAAW,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC;IACjC,8DAA8D;IAC9D,WAAW,CAAC,EAAE,eAAe,EAAE,CAAC;IAChC,gEAAgE;IAChE,aAAa,CAAC,EAAE,eAAe,EAAE,CAAC;IAClC,8DAA8D;IAC9D,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,KAAK,aAAa,GAAG;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,CAAC,CAAC;CAC3E,CAAC;AAuCF,eAAO,MAAM,cAAc;uBACN,eAAe;qBAGjB,aAAa;;;;;;IA2B9B;;;;;OAKG;oCAC6B,MAAM,KAAK,IAAI,GAAG,mBAAmB;IAQrE;;;;;OAKG;8BACuB,MAAM,IAAI,GAAG,mBAAmB;CAM3D,CAAC;AAEF,YAAY,EAAE,eAAe,EAAE,eAAe,EAAE,aAAa,EAAE,CAAC"}
|
package/package.json
CHANGED
package/src/ErxesMessenger.tsx
CHANGED
|
@@ -175,7 +175,7 @@ export function ErxesMessenger({
|
|
|
175
175
|
}, [homeActions, drawerActions, onAction]);
|
|
176
176
|
|
|
177
177
|
useEffect(() => {
|
|
178
|
-
if (Platform.OS !== 'ios') {
|
|
178
|
+
if (Platform.OS !== 'ios' && Platform.OS !== 'android') {
|
|
179
179
|
return;
|
|
180
180
|
}
|
|
181
181
|
|
|
@@ -299,7 +299,11 @@ export function ErxesMessenger({
|
|
|
299
299
|
// Wait until `configure()` has resolved — otherwise `showMessenger()` would
|
|
300
300
|
// race ahead of it and trip the native configure-before-show assertion. The
|
|
301
301
|
// initial open is handled in `setup()`; this only reacts to later changes.
|
|
302
|
-
if (
|
|
302
|
+
if (
|
|
303
|
+
(Platform.OS !== 'ios' && Platform.OS !== 'android') ||
|
|
304
|
+
visible === undefined ||
|
|
305
|
+
!configured
|
|
306
|
+
) {
|
|
303
307
|
return;
|
|
304
308
|
}
|
|
305
309
|
|
package/src/nativeIos.ts
CHANGED
|
@@ -60,13 +60,17 @@ const ACTION_EVENT = 'onErxesAction';
|
|
|
60
60
|
const READY_EVENT = 'onErxesReady';
|
|
61
61
|
|
|
62
62
|
const LINKING_ERROR =
|
|
63
|
-
|
|
63
|
+
Platform.OS === 'android'
|
|
64
|
+
? 'The rn-erxes-sdk native Android module is not linked. Rebuild the Android app (e.g. `npx react-native run-android`).'
|
|
65
|
+
: "The rn-erxes-sdk native iOS module is not linked. Run `pod install` in your app's ios directory and rebuild the app.";
|
|
64
66
|
|
|
65
67
|
const nativeModule = NativeModules.RnErxesSdk as NativeIOSModule | undefined;
|
|
66
68
|
|
|
67
69
|
function getNativeModule(): NativeIOSModule {
|
|
68
|
-
if (Platform.OS !== 'ios') {
|
|
69
|
-
throw new Error(
|
|
70
|
+
if (Platform.OS !== 'ios' && Platform.OS !== 'android') {
|
|
71
|
+
throw new Error(
|
|
72
|
+
'Erxes native messenger is only available on iOS and Android.'
|
|
73
|
+
);
|
|
70
74
|
}
|
|
71
75
|
|
|
72
76
|
if (!nativeModule) {
|