@adobe/react-native-aepmessaging 5.0.0 → 5.1.0-beta.1

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.
Files changed (61) hide show
  1. package/.babelrc +1 -1
  2. package/RCTAEPMessaging.podspec +25 -7
  3. package/README.md +109 -9
  4. package/android/build.gradle +87 -22
  5. package/android/gradle.properties +5 -0
  6. package/android/src/main/AndroidManifest.xml +0 -2
  7. package/android/src/main/AndroidManifestNew.xml +2 -0
  8. package/android/src/main/java/com/adobe/marketing/mobile/reactnative/messaging/RCTAEPMessagingModule.java +267 -200
  9. package/android/src/main/java/com/adobe/marketing/mobile/reactnative/messaging/RCTAEPMessagingPackage.java +27 -25
  10. package/android/src/main/java/com/adobe/marketing/mobile/reactnative/messaging/RCTAEPMessagingUtil.java +131 -0
  11. package/dist/Messaging.d.ts +62 -0
  12. package/dist/Messaging.js +112 -0
  13. package/dist/Messaging.js.map +1 -0
  14. package/{js → dist}/index.js +1 -1
  15. package/dist/index.js.map +1 -0
  16. package/dist/models/Message.d.ts +46 -0
  17. package/dist/models/Message.js +73 -0
  18. package/dist/models/Message.js.map +1 -0
  19. package/dist/models/MessagingDelegate.d.ts +30 -0
  20. package/{js → dist}/models/MessagingDelegate.js +1 -1
  21. package/dist/models/MessagingDelegate.js.map +1 -0
  22. package/{js → dist}/models/MessagingEdgeEventType.js +1 -1
  23. package/dist/models/MessagingEdgeEventType.js.map +1 -0
  24. package/dist/models/MessagingProposition.d.ts +8 -0
  25. package/dist/models/MessagingProposition.js +24 -0
  26. package/dist/models/MessagingProposition.js.map +1 -0
  27. package/dist/models/MessagingPropositionItem.d.ts +6 -0
  28. package/dist/models/MessagingPropositionItem.js +23 -0
  29. package/dist/models/MessagingPropositionItem.js.map +1 -0
  30. package/ios/src/RCTAEPMessaging-Bridging-Header.h +15 -0
  31. package/ios/src/RCTAEPMessaging.mm +50 -0
  32. package/ios/src/RCTAEPMessaging.swift +283 -0
  33. package/ios/src/RCTAEPMessagingConstants.swift +22 -0
  34. package/ios/src/RCTAEPMessagingDataBridge.swift +41 -0
  35. package/package.json +3 -3
  36. package/src/Messaging.ts +147 -0
  37. package/{ts → src}/index.ts +1 -1
  38. package/src/models/Message.ts +84 -0
  39. package/src/models/MessagingDelegate.ts +47 -0
  40. package/{ts → src}/models/MessagingEdgeEventType.ts +1 -1
  41. package/src/models/MessagingProposition.ts +32 -0
  42. package/src/models/MessagingPropositionItem.ts +23 -0
  43. package/tsconfig.json +2 -2
  44. package/ios/RCTAEPMessaging.xcodeproj/project.pbxproj +0 -304
  45. package/ios/src/RCTAEPMessaging.h +0 -20
  46. package/ios/src/RCTAEPMessaging.m +0 -196
  47. package/js/Messaging.d.ts +0 -32
  48. package/js/Messaging.js +0 -80
  49. package/js/Messaging.js.map +0 -1
  50. package/js/index.js.map +0 -1
  51. package/js/models/Message.d.ts +0 -43
  52. package/js/models/Message.js +0 -80
  53. package/js/models/Message.js.map +0 -1
  54. package/js/models/MessagingDelegate.d.ts +0 -25
  55. package/js/models/MessagingDelegate.js.map +0 -1
  56. package/js/models/MessagingEdgeEventType.js.map +0 -1
  57. package/ts/Messaging.ts +0 -99
  58. package/ts/models/Message.ts +0 -82
  59. package/ts/models/MessagingDelegate.ts +0 -41
  60. /package/{js → dist}/index.d.ts +0 -0
  61. /package/{js → dist}/models/MessagingEdgeEventType.d.ts +0 -0
package/.babelrc CHANGED
@@ -2,7 +2,7 @@
2
2
  "presets": ["@babel/preset-typescript", "react-native"],
3
3
  "plugins": [
4
4
  ["module-resolver", {
5
- "root": [ "./ts/" ]
5
+ "root": [ "./src/" ]
6
6
  }]
7
7
  ]
8
8
  }
@@ -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
13
  s.platform = :ios, '11.0'
14
-
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.0'
16
17
 
17
- s.source_files = "ios/**/*.{h,m}"
18
- s.requires_arc = true
19
-
20
- s.dependency "React"
21
18
  s.dependency "AEPMessaging", "~> 4.0"
19
+
20
+ if respond_to?(:install_modules_dependencies, true)
21
+ install_modules_dependencies(s)
22
+ else
23
+ s.dependency "React-Core"
24
+
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
@@ -31,6 +31,30 @@ Yarn:
31
31
  yarn add @adobe/react-native-aepmessaging
32
32
  ```
33
33
 
34
+ ## Code Based Propositions - Beta
35
+
36
+ To enable code based propositions, please use the beta version of the messaging extension 5.1.0-beta.1
37
+
38
+ NPM:
39
+
40
+ ```bash
41
+ npm install @adobe/react-native-aepmessaging@5.1.0-beta.1
42
+ ```
43
+
44
+ Yarn:
45
+
46
+ ```bash
47
+ yarn add @adobe/react-native-aepmessaging@5.1.0-beta.1
48
+ ```
49
+
50
+ Additionally, add the following to your applications iOS podfile:
51
+
52
+ ```
53
+ target 'YourApp' do
54
+ ...
55
+ pod 'AEPMessaging', :git => 'https://github.com/adobe/aepsdk-messaging-ios.git', :branch => 'exd-cbe-beta'
56
+ ```
57
+
34
58
  ## Usage
35
59
 
36
60
  ### [Messaging](https://developer.adobe.com/client-sdks/documentation/adobe-journey-optimizer)
@@ -211,15 +235,7 @@ const messagingDelegate = {
211
235
  Messaging.setMessagingDelegate(messagingDelegate)
212
236
  ```
213
237
 
214
- ### saveMessage
215
-
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
238
 
218
- **Syntax**
219
-
220
- ```javascript
221
- saveMessage(message: Message)
222
- ```
223
239
 
224
240
  **Example**
225
241
 
@@ -234,6 +250,90 @@ const messagingDelegate = {
234
250
  };
235
251
  ```
236
252
 
253
+ ### updatePropositionsForSurfaces - Beta (5.1.0-beta.1)
254
+
255
+ Dispatches an event to fetch propositions for the provided surfaces from remote.
256
+
257
+ **Syntax**
258
+
259
+ ```javascript
260
+ updatePropositionsForSurfaces(surfaces: string[])
261
+ ```
262
+
263
+ **Example**
264
+
265
+ ```javascript
266
+ Messaging.updatePropositionsForSurfaces(["mobileapp://my-surface"])
267
+ ```
268
+
269
+ ### getPropositionsForSurfaces - Beta (5.1.0-beta.1)
270
+
271
+ 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.
272
+
273
+ **Syntax**
274
+
275
+ ```javascript
276
+ getPropositionsForSurfaces(surfaces: string[])
277
+ ```
278
+
279
+ **Example**
280
+
281
+ ```javascript
282
+ const propositions = Messaging.getPropositionsForSurfaces(["mobileapp://my-surface"])
283
+ console.log(propositions)
284
+ ```
285
+
286
+ ### getLatestMessage - Beta (5.1.0-beta.1)
287
+
288
+ Retrieves the most recently displayed message object
289
+
290
+ **Syntax**
291
+
292
+ ```javascript
293
+ Messaging.getLatestMessage()
294
+ ```
295
+
296
+ **Example**
297
+
298
+ ```javascript
299
+ const message = Messaging.getLatestMessage()
300
+ console.log(message.id)
301
+ ```
302
+
303
+ ### getCachedMessages - Beta (5.1.0-beta.1)
304
+
305
+ Retrieves a list of all messages that have been cached in-memory
306
+
307
+ **Syntax**
308
+
309
+ ```javascript
310
+ Messaging.getCachedMessages()
311
+ ```
312
+
313
+ **Example**
314
+
315
+ ```javascript
316
+ const messages = Messaging.getCachedMessages()
317
+ messages.forEach(message => message.clear())
318
+ ```
319
+
320
+ ### setMessageSettings - Beta (5.1.0-beta.1)
321
+
322
+ 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
323
+
324
+ **Syntax**
325
+
326
+ ```javascript
327
+ Messaging.setMessageSettings(shouldShowMessage: boolean, shouldSaveMessage: boolean)
328
+ ```
329
+
330
+ **Example**
331
+
332
+ ```javascript
333
+ Messaging.setMessageSettings(true, false)
334
+ ```
335
+
336
+
237
337
  ## Handling In App Messages using Message Object
238
338
 
239
339
  The `Message` object passed to the `MessagingDelegate` contains the following functions to handle a message:
@@ -340,7 +440,7 @@ var message: Message
340
440
  message.clear()
341
441
  ```
342
442
 
343
- ## Programatically control the display of in-app messages
443
+ ## Programmatically control the display of in-app messages
344
444
 
345
445
  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
446
 
@@ -1,40 +1,105 @@
1
1
  buildscript {
2
- repositories {
3
- google()
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
- dependencies {
8
- classpath 'com.android.tools.build:gradle:3.5.1'
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
- apply plugin: 'com.android.library'
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
- def safeExtGet(prop, fallback) {
15
- rootProject.ext.has(prop) ? rootProject.ext.get(prop) : fallback
49
+ return major >= 8
16
50
  }
17
51
 
18
52
  android {
19
- compileSdkVersion safeExtGet('compileSdkVersion', 33)
53
+ if (supportsNamespace()) {
54
+ namespace "com.adobe.marketing.mobile.reactnative.messaging"
20
55
 
21
- defaultConfig {
22
- minSdkVersion safeExtGet('minSdkVersion', 19)
23
- targetSdkVersion safeExtGet('targetSdkVersion', 33)
24
- versionCode 1
25
- versionName "1.0"
56
+ sourceSets {
57
+ main {
58
+ manifest.srcFile "src/main/AndroidManifestNew.xml"
59
+ }
26
60
  }
27
- lintOptions {
28
- abortOnError false
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
- google()
34
- mavenCentral()
88
+ mavenCentral()
89
+ google()
90
+ maven { url "https://plugins.gradle.org/m2/" }
91
+ maven { url "https://oss.sonatype.org/content/repositories/snapshots/" }
35
92
  }
36
93
 
94
+ def kotlin_version = getExtOrDefault("kotlinVersion")
95
+
37
96
  dependencies {
38
- api "com.adobe.marketing.mobile:messaging:[2.1.0, 3.0["
39
- implementation "com.facebook.react:react-native:+"
97
+ // For < 0.71, this will be from the local maven repo
98
+ // For > 0.71, this will be replaced by `com.facebook.react:react-android:$version` by react gradle plugin
99
+ //noinspection GradleDynamicVersion
100
+ implementation "com.facebook.react:react-native:+"
101
+ implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
102
+ // api "com.adobe.marketing.mobile:messaging:[2.1.0, 3.0["
103
+ api "com.adobe.marketing.mobile:messaging:2.3.0-cbe-beta-SNAPSHOT"
104
+ implementation "com.facebook.react:react-native:+"
40
105
  }
@@ -0,0 +1,5 @@
1
+ ReactNativeMessaging_kotlinVersion=1.7.0
2
+ ReactNativeMessaging_minSdkVersion=21
3
+ ReactNativeMessaging_targetSdkVersion=31
4
+ ReactNativeMessaging_compileSdkVersion=31
5
+ ReactNativeMessaging_ndkversion=21.4.7075529
@@ -1,6 +1,4 @@
1
1
 
2
2
  <manifest xmlns:android="http://schemas.android.com/apk/res/android"
3
3
  package="com.adobe.marketing.mobile.reactnative.messaging">
4
-
5
4
  </manifest>
6
-
@@ -0,0 +1,2 @@
1
+ <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.adobe.marketing.mobile.reactnative.messaging">
2
+ </manifest>