@adobe/react-native-aepmessaging 5.0.0 → 6.0.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/.babelrc +1 -1
- package/RCTAEPMessaging.podspec +26 -8
- package/README.md +93 -10
- package/android/build.gradle +84 -22
- package/android/gradle.properties +5 -0
- package/android/src/main/AndroidManifest.xml +0 -2
- package/android/src/main/AndroidManifestNew.xml +2 -0
- package/android/src/main/java/com/adobe/marketing/mobile/reactnative/messaging/RCTAEPMessagingModule.java +215 -202
- package/android/src/main/java/com/adobe/marketing/mobile/reactnative/messaging/RCTAEPMessagingPackage.java +27 -25
- package/android/src/main/java/com/adobe/marketing/mobile/reactnative/messaging/RCTAEPMessagingUtil.java +134 -0
- package/dist/Messaging.d.ts +62 -0
- package/dist/Messaging.js +118 -0
- package/dist/Messaging.js.map +1 -0
- package/{js → dist}/index.d.ts +3 -1
- package/{js → dist}/index.js +4 -2
- package/dist/index.js.map +1 -0
- package/dist/models/Message.d.ts +39 -0
- package/dist/models/Message.js +64 -0
- package/dist/models/Message.js.map +1 -0
- package/dist/models/MessagingDelegate.d.ts +35 -0
- package/{js → dist}/models/MessagingDelegate.js +1 -1
- package/dist/models/MessagingDelegate.js.map +1 -0
- package/{js → dist}/models/MessagingEdgeEventType.d.ts +4 -4
- package/{js → dist}/models/MessagingEdgeEventType.js +5 -5
- package/dist/models/MessagingEdgeEventType.js.map +1 -0
- package/dist/models/MessagingProposition.d.ts +8 -0
- package/dist/models/MessagingProposition.js +24 -0
- package/dist/models/MessagingProposition.js.map +1 -0
- package/dist/models/MessagingPropositionItem.d.ts +8 -0
- package/dist/models/MessagingPropositionItem.js +14 -0
- package/dist/models/MessagingPropositionItem.js.map +1 -0
- package/ios/src/RCTAEPMessaging-Bridging-Header.h +15 -0
- package/ios/src/RCTAEPMessaging.mm +50 -0
- package/ios/src/RCTAEPMessaging.swift +266 -0
- package/ios/src/RCTAEPMessagingConstants.swift +22 -0
- package/ios/src/RCTAEPMessagingDataBridge.swift +47 -0
- package/package.json +6 -6
- package/src/Messaging.ts +164 -0
- package/{ts → src}/index.ts +11 -2
- package/src/models/Message.ts +72 -0
- package/src/models/MessagingDelegate.ts +53 -0
- package/{ts → src}/models/MessagingEdgeEventType.ts +5 -5
- package/src/models/MessagingProposition.ts +32 -0
- package/src/models/MessagingPropositionItem.ts +20 -0
- package/tsconfig.json +2 -2
- package/ios/RCTAEPMessaging.xcodeproj/project.pbxproj +0 -304
- package/ios/src/RCTAEPMessaging.h +0 -20
- package/ios/src/RCTAEPMessaging.m +0 -196
- package/js/Messaging.d.ts +0 -32
- package/js/Messaging.js +0 -80
- package/js/Messaging.js.map +0 -1
- package/js/index.js.map +0 -1
- package/js/models/Message.d.ts +0 -43
- package/js/models/Message.js +0 -80
- package/js/models/Message.js.map +0 -1
- package/js/models/MessagingDelegate.d.ts +0 -25
- package/js/models/MessagingDelegate.js.map +0 -1
- package/js/models/MessagingEdgeEventType.js.map +0 -1
- package/ts/Messaging.ts +0 -99
- package/ts/models/Message.ts +0 -82
- package/ts/models/MessagingDelegate.ts +0 -41
package/.babelrc
CHANGED
package/RCTAEPMessaging.podspec
CHANGED
|
@@ -1,22 +1,40 @@
|
|
|
1
1
|
require "json"
|
|
2
|
+
|
|
2
3
|
package = JSON.parse(File.read(File.join(__dir__, "package.json")))
|
|
4
|
+
folly_compiler_flags = '-DFOLLY_NO_CONFIG -DFOLLY_MOBILE=1 -DFOLLY_USE_LIBCPP=1 -Wno-comma -Wno-shorten-64-to-32'
|
|
3
5
|
|
|
4
6
|
Pod::Spec.new do |s|
|
|
5
7
|
s.name = "RCTAEPMessaging"
|
|
6
8
|
s.version = package["version"]
|
|
7
9
|
s.summary = "Messaging library for Adobe Experience Platform Mobile SDK. Written and Supported by Adobe."
|
|
8
10
|
s.author = "Adobe Experience Platform SDK Team"
|
|
9
|
-
|
|
10
11
|
s.homepage = "https://github.com/adobe/aepsdk-react-native"
|
|
11
|
-
|
|
12
12
|
s.license = "Apache 2.0 License"
|
|
13
|
-
s.platform = :ios, '
|
|
14
|
-
|
|
13
|
+
s.platform = :ios, '12.0'
|
|
15
14
|
s.source = { :git => "https://github.com/adobe/aepsdk-react-native.git", :tag => "#{s.version}" }
|
|
15
|
+
s.source_files = "ios/**/*.{h,m,mm,swift}"
|
|
16
|
+
s.swift_version = '5.1'
|
|
17
|
+
|
|
18
|
+
s.dependency "AEPMessaging", ">= 5.0.0", "< 6.0.0"
|
|
16
19
|
|
|
17
|
-
|
|
18
|
-
|
|
20
|
+
if respond_to?(:install_modules_dependencies, true)
|
|
21
|
+
install_modules_dependencies(s)
|
|
22
|
+
else
|
|
23
|
+
s.dependency "React-Core"
|
|
19
24
|
|
|
20
|
-
|
|
21
|
-
|
|
25
|
+
# Don't install the dependencies when we run `pod install` in the old architecture.
|
|
26
|
+
if ENV['RCT_NEW_ARCH_ENABLED'] == '1' then
|
|
27
|
+
s.compiler_flags = folly_compiler_flags + " -DRCT_NEW_ARCH_ENABLED=1"
|
|
28
|
+
s.pod_target_xcconfig = {
|
|
29
|
+
"HEADER_SEARCH_PATHS" => "\"$(PODS_ROOT)/boost\"",
|
|
30
|
+
"OTHER_CPLUSPLUSFLAGS" => "-DFOLLY_NO_CONFIG -DFOLLY_MOBILE=1 -DFOLLY_USE_LIBCPP=1",
|
|
31
|
+
"CLANG_CXX_LANGUAGE_STANDARD" => "c++17"
|
|
32
|
+
}
|
|
33
|
+
s.dependency "React-Codegen"
|
|
34
|
+
s.dependency "RCT-Folly"
|
|
35
|
+
s.dependency "RCTRequired"
|
|
36
|
+
s.dependency "RCTTypeSafety"
|
|
37
|
+
s.dependency "ReactCommon/turbomodule/core"
|
|
38
|
+
end
|
|
39
|
+
end
|
|
22
40
|
end
|
package/README.md
CHANGED
|
@@ -211,15 +211,7 @@ const messagingDelegate = {
|
|
|
211
211
|
Messaging.setMessagingDelegate(messagingDelegate)
|
|
212
212
|
```
|
|
213
213
|
|
|
214
|
-
### saveMessage
|
|
215
214
|
|
|
216
|
-
Natively caches the provided `Message` object in-memory. Cached `Message` objects can used at a later time to show the cached `Message` or perform other actions on the `Message` object. This function should be called from the `shouldShowMessage` function of the custom `MessagingDelegate`.
|
|
217
|
-
|
|
218
|
-
**Syntax**
|
|
219
|
-
|
|
220
|
-
```javascript
|
|
221
|
-
saveMessage(message: Message)
|
|
222
|
-
```
|
|
223
215
|
|
|
224
216
|
**Example**
|
|
225
217
|
|
|
@@ -234,6 +226,90 @@ const messagingDelegate = {
|
|
|
234
226
|
};
|
|
235
227
|
```
|
|
236
228
|
|
|
229
|
+
### updatePropositionsForSurfaces
|
|
230
|
+
|
|
231
|
+
Dispatches an event to fetch propositions for the provided surfaces from remote.
|
|
232
|
+
|
|
233
|
+
**Syntax**
|
|
234
|
+
|
|
235
|
+
```javascript
|
|
236
|
+
updatePropositionsForSurfaces(surfaces: string[])
|
|
237
|
+
```
|
|
238
|
+
|
|
239
|
+
**Example**
|
|
240
|
+
|
|
241
|
+
```javascript
|
|
242
|
+
Messaging.updatePropositionsForSurfaces(["mobileapp://my-surface"])
|
|
243
|
+
```
|
|
244
|
+
|
|
245
|
+
### getPropositionsForSurfaces
|
|
246
|
+
|
|
247
|
+
Retrieves the previously fetched (and cached) feeds content from the SDK for the provided surfaces. If the feeds content for one or more surfaces isn't previously cached in the SDK, it will not be retrieved from Adobe Journey Optimizer via the Experience Edge network.
|
|
248
|
+
|
|
249
|
+
**Syntax**
|
|
250
|
+
|
|
251
|
+
```javascript
|
|
252
|
+
getPropositionsForSurfaces(surfaces: string[])
|
|
253
|
+
```
|
|
254
|
+
|
|
255
|
+
**Example**
|
|
256
|
+
|
|
257
|
+
```javascript
|
|
258
|
+
const propositions = Messaging.getPropositionsForSurfaces(["mobileapp://my-surface"])
|
|
259
|
+
console.log(propositions)
|
|
260
|
+
```
|
|
261
|
+
|
|
262
|
+
### getLatestMessage
|
|
263
|
+
|
|
264
|
+
Retrieves the most recently displayed message object
|
|
265
|
+
|
|
266
|
+
**Syntax**
|
|
267
|
+
|
|
268
|
+
```javascript
|
|
269
|
+
Messaging.getLatestMessage()
|
|
270
|
+
```
|
|
271
|
+
|
|
272
|
+
**Example**
|
|
273
|
+
|
|
274
|
+
```javascript
|
|
275
|
+
const message = Messaging.getLatestMessage()
|
|
276
|
+
console.log(message.id)
|
|
277
|
+
```
|
|
278
|
+
|
|
279
|
+
### getCachedMessages
|
|
280
|
+
|
|
281
|
+
Retrieves a list of all messages that have been cached in-memory
|
|
282
|
+
|
|
283
|
+
**Syntax**
|
|
284
|
+
|
|
285
|
+
```javascript
|
|
286
|
+
Messaging.getCachedMessages()
|
|
287
|
+
```
|
|
288
|
+
|
|
289
|
+
**Example**
|
|
290
|
+
|
|
291
|
+
```javascript
|
|
292
|
+
const messages = Messaging.getCachedMessages()
|
|
293
|
+
messages.forEach(message => message.clear())
|
|
294
|
+
```
|
|
295
|
+
|
|
296
|
+
### setMessageSettings
|
|
297
|
+
|
|
298
|
+
Allows setting a global setting for `shouldSaveMessage` and `shouldShowMessage`. Use a messaging delegate defined in the `setMessagingDelegate` method for more fine-grained control of message settings
|
|
299
|
+
|
|
300
|
+
**Syntax**
|
|
301
|
+
|
|
302
|
+
```javascript
|
|
303
|
+
Messaging.setMessageSettings(shouldShowMessage: boolean, shouldSaveMessage: boolean)
|
|
304
|
+
```
|
|
305
|
+
|
|
306
|
+
**Example**
|
|
307
|
+
|
|
308
|
+
```javascript
|
|
309
|
+
Messaging.setMessageSettings(true, false)
|
|
310
|
+
```
|
|
311
|
+
|
|
312
|
+
|
|
237
313
|
## Handling In App Messages using Message Object
|
|
238
314
|
|
|
239
315
|
The `Message` object passed to the `MessagingDelegate` contains the following functions to handle a message:
|
|
@@ -340,7 +416,7 @@ var message: Message
|
|
|
340
416
|
message.clear()
|
|
341
417
|
```
|
|
342
418
|
|
|
343
|
-
##
|
|
419
|
+
## Programmatically control the display of in-app messages
|
|
344
420
|
|
|
345
421
|
App developers can now create a type `MessagingDelegate` in order to be alerted when specific events occur during the lifecycle of an in-app message.
|
|
346
422
|
|
|
@@ -354,7 +430,9 @@ type MessagingDelegate = {
|
|
|
354
430
|
|
|
355
431
|
shouldShowMessage(message: Message): boolean,
|
|
356
432
|
|
|
357
|
-
urlLoaded(url: string, message: Message): void,
|
|
433
|
+
urlLoaded(url: string, message: Message): void, // iOS Only
|
|
434
|
+
|
|
435
|
+
onContentLoaded(message: Message): void, // Android Only
|
|
358
436
|
};
|
|
359
437
|
```
|
|
360
438
|
|
|
@@ -377,7 +455,12 @@ const messagingDelegate = {
|
|
|
377
455
|
urlLoaded(url: string, message: Message) {
|
|
378
456
|
// Action after message loads an URL
|
|
379
457
|
},
|
|
458
|
+
|
|
459
|
+
onContentLoaded(message: Message) {
|
|
460
|
+
// Action after message loads content
|
|
461
|
+
},
|
|
380
462
|
};
|
|
463
|
+
|
|
381
464
|
```
|
|
382
465
|
|
|
383
466
|
### Controlling when the message should be shown to the end user.
|
package/android/build.gradle
CHANGED
|
@@ -1,40 +1,102 @@
|
|
|
1
1
|
buildscript {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
mavenCentral()
|
|
5
|
-
}
|
|
2
|
+
// Buildscript is evaluated before everything else so we can't use getExtOrDefault
|
|
3
|
+
def kotlin_version = rootProject.ext.has("kotlinVersion") ? rootProject.ext.get("kotlinVersion") : project.properties["ReactNativeMessaging_kotlinVersion"]
|
|
6
4
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
5
|
+
repositories {
|
|
6
|
+
google()
|
|
7
|
+
mavenCentral()
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
dependencies {
|
|
11
|
+
classpath "com.android.tools.build:gradle:7.2.1"
|
|
12
|
+
// noinspection DifferentKotlinGradleVersion
|
|
13
|
+
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
def isNewArchitectureEnabled() {
|
|
18
|
+
return rootProject.hasProperty("newArchEnabled") && rootProject.getProperty("newArchEnabled") == "true"
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
apply plugin: "com.android.library"
|
|
22
|
+
apply plugin: "kotlin-android"
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
def appProject = rootProject.allprojects.find { it.plugins.hasPlugin('com.android.application') }
|
|
26
|
+
|
|
27
|
+
if (isNewArchitectureEnabled()) {
|
|
28
|
+
apply plugin: "com.facebook.react"
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
def getExtOrDefault(name) {
|
|
32
|
+
return rootProject.ext.has(name) ? rootProject.ext.get(name) : project.properties["ReactNativeMessaging_" + name]
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
def getExtOrIntegerDefault(name) {
|
|
36
|
+
return rootProject.ext.has(name) ? rootProject.ext.get(name) : (project.properties["ReactNativeMessaging_" + name]).toInteger()
|
|
10
37
|
}
|
|
11
38
|
|
|
12
|
-
|
|
39
|
+
def supportsNamespace() {
|
|
40
|
+
def parsed = com.android.Version.ANDROID_GRADLE_PLUGIN_VERSION.tokenize('.')
|
|
41
|
+
def major = parsed[0].toInteger()
|
|
42
|
+
def minor = parsed[1].toInteger()
|
|
43
|
+
|
|
44
|
+
// Namespace support was added in 7.3.0
|
|
45
|
+
if (major == 7 && minor >= 3) {
|
|
46
|
+
return true
|
|
47
|
+
}
|
|
13
48
|
|
|
14
|
-
|
|
15
|
-
rootProject.ext.has(prop) ? rootProject.ext.get(prop) : fallback
|
|
49
|
+
return major >= 8
|
|
16
50
|
}
|
|
17
51
|
|
|
18
52
|
android {
|
|
19
|
-
|
|
53
|
+
if (supportsNamespace()) {
|
|
54
|
+
namespace "com.adobe.marketing.mobile.reactnative.messaging"
|
|
20
55
|
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
versionName "1.0"
|
|
56
|
+
sourceSets {
|
|
57
|
+
main {
|
|
58
|
+
manifest.srcFile "src/main/AndroidManifestNew.xml"
|
|
59
|
+
}
|
|
26
60
|
}
|
|
27
|
-
|
|
28
|
-
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
compileSdkVersion getExtOrIntegerDefault("compileSdkVersion")
|
|
64
|
+
|
|
65
|
+
defaultConfig {
|
|
66
|
+
minSdkVersion getExtOrIntegerDefault("minSdkVersion")
|
|
67
|
+
targetSdkVersion getExtOrIntegerDefault("targetSdkVersion")
|
|
68
|
+
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
buildTypes {
|
|
72
|
+
release {
|
|
73
|
+
minifyEnabled false
|
|
29
74
|
}
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
lintOptions {
|
|
78
|
+
disable "GradleCompatible"
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
compileOptions {
|
|
82
|
+
sourceCompatibility JavaVersion.VERSION_1_8
|
|
83
|
+
targetCompatibility JavaVersion.VERSION_1_8
|
|
84
|
+
}
|
|
30
85
|
}
|
|
31
86
|
|
|
32
87
|
repositories {
|
|
33
|
-
|
|
34
|
-
|
|
88
|
+
mavenCentral()
|
|
89
|
+
google()
|
|
35
90
|
}
|
|
36
91
|
|
|
92
|
+
def kotlin_version = getExtOrDefault("kotlinVersion")
|
|
93
|
+
|
|
37
94
|
dependencies {
|
|
38
|
-
|
|
39
|
-
|
|
95
|
+
// For < 0.71, this will be from the local maven repo
|
|
96
|
+
// For > 0.71, this will be replaced by `com.facebook.react:react-android:$version` by react gradle plugin
|
|
97
|
+
//noinspection GradleDynamicVersion
|
|
98
|
+
implementation "com.facebook.react:react-native:+"
|
|
99
|
+
implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
|
|
100
|
+
api "com.adobe.marketing.mobile:messaging:3.+"
|
|
101
|
+
implementation "com.facebook.react:react-native:+"
|
|
40
102
|
}
|