@adobe/react-native-aepmessaging 7.2.1 → 7.3.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.
@@ -14,6 +14,9 @@ package com.adobe.marketing.mobile.reactnative.messaging;
14
14
  class RCTAEPMessagingConstants {
15
15
  static final String MESSAGE_ID_KEY = "messageId";
16
16
  static final String HANDLER_NAME_KEY = "handlerName";
17
+ static final String JAVASCRIPT_STRING_KEY = "javascriptString";
17
18
  static final String CONTENT_KEY = "content";
19
+ static final String RESULT_KEY = "result";
18
20
  static final String ON_JAVASCRIPT_MESSAGE_EVENT = "onJavascriptMessage";
21
+ static final String ON_JAVASCRIPT_RESULT_EVENT = "onJavascriptResult";
19
22
  }
@@ -258,6 +258,25 @@ public final class RCTAEPMessagingModule
258
258
  });
259
259
  }
260
260
 
261
+ @ReactMethod
262
+ public void evaluateJavascript(final String messageId, final String javascriptString) {
263
+ Presentable<?> presentable = presentableCache.get(messageId);
264
+ if (presentable == null || !(presentable.getPresentation() instanceof InAppMessage)) {
265
+ Log.w(TAG, "evaluateJavascript: No presentable found for messageId: " + messageId);
266
+ return;
267
+ }
268
+
269
+ Presentable<InAppMessage> inAppMessagePresentable = (Presentable<InAppMessage>) presentable;
270
+ InAppMessageEventHandler eventHandler = inAppMessagePresentable.getPresentation().getEventHandler();
271
+ eventHandler.evaluateJavascript(javascriptString, result -> {
272
+ Map<String, String> params = new HashMap<>();
273
+ params.put(RCTAEPMessagingConstants.MESSAGE_ID_KEY, messageId);
274
+ params.put(RCTAEPMessagingConstants.JAVASCRIPT_STRING_KEY, javascriptString);
275
+ params.put(RCTAEPMessagingConstants.RESULT_KEY, result);
276
+ emitEvent(RCTAEPMessagingConstants.ON_JAVASCRIPT_RESULT_EVENT, params);
277
+ });
278
+ }
279
+
261
280
  // Messaging Delegate functions
262
281
  @Override
263
282
  public void onShow(final Presentable<?> presentable) {
@@ -335,11 +354,12 @@ public final class RCTAEPMessagingModule
335
354
 
336
355
  // Messaging Delegate Callback
337
356
  @ReactMethod(isBlockingSynchronousMethod = true)
338
- public void setMessageSettings(final boolean shouldShowMessage,
357
+ public boolean setMessageSettings(final boolean shouldShowMessage,
339
358
  final boolean shouldSaveMessage) {
340
359
  this.shouldShowMessage = shouldShowMessage;
341
360
  this.shouldSaveMessage = shouldSaveMessage;
342
361
  latch.countDown();
362
+ return true;
343
363
  }
344
364
 
345
365
  /**
package/dist/Messaging.js CHANGED
@@ -105,6 +105,7 @@ class Messaging {
105
105
  var _a;
106
106
  const messageInstance = new Message_1.default(message);
107
107
  messageInstance._clearJavascriptMessageHandlers();
108
+ messageInstance._clearJavascriptResultHandlers();
108
109
  (_a = messagingDelegate === null || messagingDelegate === void 0 ? void 0 : messagingDelegate.onDismiss) === null || _a === void 0 ? void 0 : _a.call(messagingDelegate, messageInstance);
109
110
  });
110
111
  eventEmitter.addListener('shouldShowMessage', (message) => {
@@ -1 +1 @@
1
- {"version":3,"file":"Messaging.js","sourceRoot":"","sources":["../src/Messaging.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Messaging.js","sourceRoot":"","sources":["../src/Messaging.ts"],"names":[],"mappings":"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"}
@@ -42,6 +42,12 @@ declare class Message {
42
42
  * @param {function} handler: The method or closure to be called with the body of the message created in the Message's JavaScript
43
43
  */
44
44
  handleJavascriptMessage(handlerName: string, handler: (content: string) => void): void;
45
+ /**
46
+ * Asynchronously evaluates the specified JavaScript string in the context of the message's WebView.
47
+ * @param {string} javascriptString: The JavaScript string to evaluate.
48
+ * @param {function} callback: A callback to be invoked when the script execution completes with the result of the execution.
49
+ */
50
+ evaluateJavascript(javascriptString: string, callback: (result: string) => void): void;
45
51
  /**
46
52
  * @internal - For internal use only.
47
53
  * Clears all the javascript message handlers for the message.
@@ -49,5 +55,12 @@ declare class Message {
49
55
  * Failure to call this function may lead to memory leaks.
50
56
  */
51
57
  _clearJavascriptMessageHandlers(): void;
58
+ /**
59
+ * @internal - For internal use only.
60
+ * Clears all the javascript result handlers for the message.
61
+ * This function must be called if the callbacks registered in evaluateJavascript are no longer needed.
62
+ * Failure to call this function may lead to memory leaks.
63
+ */
64
+ _clearJavascriptResultHandlers(): void;
52
65
  }
53
66
  export default Message;
@@ -16,6 +16,9 @@ const RCTAEPMessaging = react_native_1.NativeModules.AEPMessaging;
16
16
  // Registery to store inAppMessage callbacks for each message in Message.handleJavascriptMessage
17
17
  // Record - {messageId : {handlerName : callback}}
18
18
  const jsMessageHandlers = {};
19
+ // Registery to store inAppMessage result callbacks for each message in Message.evaluateJavascript
20
+ // Record - {messageId : {javascriptString : callback}}
21
+ const jsResultHandlers = {};
19
22
  const handleJSMessageEventEmitter = new react_native_1.NativeEventEmitter(RCTAEPMessaging);
20
23
  // invokes the callback registered in Message.handleJavascriptMessage with the content received from the inAppMessage webview
21
24
  handleJSMessageEventEmitter.addListener('onJavascriptMessage', (event) => {
@@ -24,6 +27,14 @@ handleJSMessageEventEmitter.addListener('onJavascriptMessage', (event) => {
24
27
  jsMessageHandlers[messageId][handlerName](content);
25
28
  }
26
29
  });
30
+ handleJSMessageEventEmitter.addListener('onJavascriptResult', (event) => {
31
+ const { messageId, javascriptString, result } = event;
32
+ if (jsResultHandlers[messageId] && jsResultHandlers[messageId][javascriptString]) {
33
+ // Convert result to string to maintain API parity
34
+ const resultString = result == null ? '' : String(result);
35
+ jsResultHandlers[messageId][javascriptString](resultString);
36
+ }
37
+ });
27
38
  class Message {
28
39
  constructor({ id, autoTrack = false }) {
29
40
  this.id = id;
@@ -100,6 +111,28 @@ class Message {
100
111
  jsMessageHandlers[this.id][handlerName] = handler;
101
112
  RCTAEPMessaging.handleJavascriptMessage(this.id, handlerName);
102
113
  }
114
+ /**
115
+ * Asynchronously evaluates the specified JavaScript string in the context of the message's WebView.
116
+ * @param {string} javascriptString: The JavaScript string to evaluate.
117
+ * @param {function} callback: A callback to be invoked when the script execution completes with the result of the execution.
118
+ */
119
+ evaluateJavascript(javascriptString, callback) {
120
+ // validate parameters
121
+ if (!javascriptString) {
122
+ console.warn('[AEP Messaging] evaluateJavascript: javascriptString is required');
123
+ return;
124
+ }
125
+ if (typeof callback !== 'function') {
126
+ console.warn('[AEP Messaging] evaluateJavascript: callback must be a function');
127
+ return;
128
+ }
129
+ // cache the callback
130
+ if (!jsResultHandlers[this.id]) {
131
+ jsResultHandlers[this.id] = {};
132
+ }
133
+ jsResultHandlers[this.id][javascriptString] = callback;
134
+ RCTAEPMessaging.evaluateJavascript(this.id, javascriptString);
135
+ }
103
136
  /**
104
137
  * @internal - For internal use only.
105
138
  * Clears all the javascript message handlers for the message.
@@ -109,6 +142,15 @@ class Message {
109
142
  _clearJavascriptMessageHandlers() {
110
143
  delete jsMessageHandlers[this.id];
111
144
  }
145
+ /**
146
+ * @internal - For internal use only.
147
+ * Clears all the javascript result handlers for the message.
148
+ * This function must be called if the callbacks registered in evaluateJavascript are no longer needed.
149
+ * Failure to call this function may lead to memory leaks.
150
+ */
151
+ _clearJavascriptResultHandlers() {
152
+ delete jsResultHandlers[this.id];
153
+ }
112
154
  }
113
155
  exports.default = Message;
114
156
  //# sourceMappingURL=Message.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Message.js","sourceRoot":"","sources":["../../src/models/Message.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Message.js","sourceRoot":"","sources":["../../src/models/Message.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"MessagingProposition.js","sourceRoot":"","sources":["../../src/models/MessagingProposition.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;EAUE;;;AAGF,mEAAgE;AAChE,+CAA4C;AAC5C,uDAAoD;AACpD,uDAAwD;AACxD,uDAAoD;AAEpD,MAAa,kBAAkB;IAM7B,YAAY,GAA6E;;QACvF,IAAI,CAAC,EAAE,GAAG,MAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,EAAE,mCAAI,EAAE,CAAC;QACxB,IAAI,CAAC,KAAK,GAAG,MAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,KAAK,mCAAI,EAAE,CAAC;QAC9B,IAAI,CAAC,YAAY,GAAG,MAAC,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,YAA6B,mCAAK,EAAmB,CAAC;QAEhF,8DAA8D;QAC9D,MAAM,mBAAmB,GAAG,MAAA,MAAA,MAAA,IAAI,CAAC,YAAY,0CAAE,QAAQ,0CAAE,EAAE,mCAAI,EAAE,CAAC;QAClE,IAAI,MAAA,IAAI,CAAC,YAAY,0CAAE,QAAQ,EAAE;YAC9B,IAAI,CAAC,YAAY,CAAC,QAAgB,CAAC,UAAU,GAAG,mBAAmB,CAAC;SACtE;QAED,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5D,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,QAAa,EAAE,EAAE;;YAC1C,MAAM,UAAU,GAAG,MAAA,MAAA,MAAA,IAAI,CAAC,YAAY,0CAAE,QAAQ,0CAAE,EAAE,mCAAI,EAAE,CAAC;YACzD,IAAI,QAAa,CAAC;YAClB,QAAQ,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,MAAM,EAAE;gBACxB,KAAK,6CAAqB,CAAC,YAAY;oBACrC,QAAQ,GAAG,IAAI,yBAAW,CAAC,QAAe,CAAC,CAAC;oBAC3C,QAAgB,CAAC,UAAU,GAAG,UAAU,CAAC;oBAC1C,OAAO,QAAQ,CAAC;gBAClB,KAAK,6CAAqB,CAAC,YAAY;oBACrC,QAAQ,GAAG,IAAI,iCAAe,CAAC,QAAe,CAAC,CAAC;oBAC/C,QAAgB,CAAC,UAAU,GAAG,UAAU,CAAC;oBAC1C,OAAO,QAAQ,CAAC;gBAClB,KAAK,6CAAqB,CAAC,YAAY;oBACrC,QAAQ,GAAG,IAAI,qCAAmB,CAAC,QAAe,CAAC,CAAC;oBACnD,QAAgB,CAAC,UAAU,GAAG,UAAU,CAAC;oBAC1C,OAAO,QAAQ,CAAC;gBAClB;oBACE,QAAQ,GAAG,IAAI,iCAAe,CAAC,QAAe,CAAC,CAAC;oBAC/C,QAAgB,CAAC,UAAU,GAAG,UAAU,CAAC;oBAC1C,OAAO,QAAQ,CAAC;aACnB;QACH,CAAC,CAAC,CAAC;IACL,CAAC;CACF;AAzCD,gDAyCC;AAE8B,kDAAoB"}
1
+ {"version":3,"file":"MessagingProposition.js","sourceRoot":"","sources":["../../src/models/MessagingProposition.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;EAUE;;;AAGF,mEAAgE;AAChE,+CAA4C;AAC5C,uDAAoD;AACpD,uDAAwD;AACxD,uDAAoD;AAEpD,MAAa,kBAAkB;IAM7B,YAAY,GAA6E;;QACvF,IAAI,CAAC,EAAE,GAAG,MAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,EAAE,mCAAI,EAAE,CAAC;QACxB,IAAI,CAAC,KAAK,GAAG,MAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,KAAK,mCAAI,EAAE,CAAC;QAC9B,IAAI,CAAC,YAAY,GAAG,MAAC,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,YAA6B,mCAAK,EAAmB,CAAC;QAEhF,8DAA8D;QAC9D,MAAM,mBAAmB,GAAG,MAAA,MAAA,MAAA,IAAI,CAAC,YAAY,0CAAE,QAAQ,0CAAE,EAAE,mCAAI,EAAE,CAAC;QAClE,IAAI,MAAA,IAAI,CAAC,YAAY,0CAAE,QAAQ,EAAE,CAAC;YAC/B,IAAI,CAAC,YAAY,CAAC,QAAgB,CAAC,UAAU,GAAG,mBAAmB,CAAC;QACvE,CAAC;QAED,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5D,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,QAAa,EAAE,EAAE;;YAC1C,MAAM,UAAU,GAAG,MAAA,MAAA,MAAA,IAAI,CAAC,YAAY,0CAAE,QAAQ,0CAAE,EAAE,mCAAI,EAAE,CAAC;YACzD,IAAI,QAAa,CAAC;YAClB,QAAQ,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,MAAM,EAAE,CAAC;gBACzB,KAAK,6CAAqB,CAAC,YAAY;oBACrC,QAAQ,GAAG,IAAI,yBAAW,CAAC,QAAe,CAAC,CAAC;oBAC3C,QAAgB,CAAC,UAAU,GAAG,UAAU,CAAC;oBAC1C,OAAO,QAAQ,CAAC;gBAClB,KAAK,6CAAqB,CAAC,YAAY;oBACrC,QAAQ,GAAG,IAAI,iCAAe,CAAC,QAAe,CAAC,CAAC;oBAC/C,QAAgB,CAAC,UAAU,GAAG,UAAU,CAAC;oBAC1C,OAAO,QAAQ,CAAC;gBAClB,KAAK,6CAAqB,CAAC,YAAY;oBACrC,QAAQ,GAAG,IAAI,qCAAmB,CAAC,QAAe,CAAC,CAAC;oBACnD,QAAgB,CAAC,UAAU,GAAG,UAAU,CAAC;oBAC1C,OAAO,QAAQ,CAAC;gBAClB;oBACE,QAAQ,GAAG,IAAI,iCAAe,CAAC,QAAe,CAAC,CAAC;oBAC/C,QAAgB,CAAC,UAAU,GAAG,UAAU,CAAC;oBAC1C,OAAO,QAAQ,CAAC;YACpB,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;CACF;AAzCD,gDAyCC;AAE8B,kDAAoB"}
@@ -21,5 +21,5 @@ var PersonalizationSchema;
21
21
  PersonalizationSchema["JSON_CONTENT"] = "https://ns.adobe.com/personalization/json-content-item";
22
22
  PersonalizationSchema["NATIVE_ALERT"] = "https://ns.adobe.com/personalization/message/native-alert";
23
23
  PersonalizationSchema["RULESET_ITEM"] = "https://ns.adobe.com/personalization/ruleset-item";
24
- })(PersonalizationSchema = exports.PersonalizationSchema || (exports.PersonalizationSchema = {}));
24
+ })(PersonalizationSchema || (exports.PersonalizationSchema = PersonalizationSchema = {}));
25
25
  //# sourceMappingURL=PersonalizationSchema.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PersonalizationSchema.js","sourceRoot":"","sources":["../../src/models/PersonalizationSchema.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;EAUE;;;AAEF,IAAY,qBAQX;AARD,WAAY,qBAAqB;IAC/B,mGAA0E,CAAA;IAC1E,sGAA6E,CAAA;IAC7E,gGAAuE,CAAA;IACvE,uFAA8D,CAAA;IAC9D,gGAAuE,CAAA;IACvE,mGAA0E,CAAA;IAC1E,2FAAkE,CAAA;AACpE,CAAC,EARW,qBAAqB,GAArB,6BAAqB,KAArB,6BAAqB,QAQhC"}
1
+ {"version":3,"file":"PersonalizationSchema.js","sourceRoot":"","sources":["../../src/models/PersonalizationSchema.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;EAUE;;;AAEF,IAAY,qBAQX;AARD,WAAY,qBAAqB;IAC/B,mGAA0E,CAAA;IAC1E,sGAA6E,CAAA;IAC7E,gGAAuE,CAAA;IACvE,uFAA8D,CAAA;IAC9D,gGAAuE,CAAA;IACvE,mGAA0E,CAAA;IAC1E,2FAAkE,CAAA;AACpE,CAAC,EARW,qBAAqB,qCAArB,qBAAqB,QAQhC"}
@@ -1 +1 @@
1
- {"version":3,"file":"PropositionItem.js","sourceRoot":"","sources":["../../src/models/PropositionItem.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;EAUE;;;AAEF,+CAA6C;AAI7C,MAAM,eAAe,GAAG,4BAAa,CAAC,YAAY,CAAC;AAenD;;;;;;GAMG;AACH,MAAa,eAAe;IAO1B,YAAY,mBAAwC;QAClD,IAAI,CAAC,EAAE,GAAG,mBAAmB,CAAC,EAAE,CAAC;QACjC,IAAI,CAAC,MAAM,GAAG,mBAAmB,CAAC,MAAM,CAAC;QACzC,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC,IAAI,CAAC;QACrC,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC,IAAI,CAAC;QACrC,IAAI,CAAC,UAAU,GAAG,mBAAmB,CAAC,UAAU,CAAC;IACnD,CAAC;IAED;;;;OAIG;IACH,SAAS;QACP,OAAO,IAAI,CAAC,EAAE,CAAC;IACjB,CAAC;IAED;;;;OAIG;IACH,SAAS;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED;;;;OAIG;IACH,WAAW;QACT,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IAgCD,iBAAiB;IACjB,KAAK,CACH,sBAA8D,EAC9D,SAAkC,EAClC,MAAwB;QAExB,sCAAsC;QACtC,IAAI,OAAO,sBAAsB,KAAK,QAAQ,IAAI,SAAS,KAAK,SAAS,EAAE;YACzE,mCAAmC;YACnC,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,sBAAsB,EAAE,IAAI,CAAC,CAAC;SAC3D;aAAM,IAAI,OAAO,sBAAsB,KAAK,QAAQ,IAAI,sBAAsB,KAAK,IAAI,EAAE;YACxF,yDAAyD;YACzD,IAAI,CAAC,gBAAgB,CAAC,sBAAsB,EAAE,SAAU,EAAE,MAAM,IAAI,IAAI,CAAC,CAAC;SAC3E;IACH,CAAC;IAED;;OAEG;IACK,gBAAgB,CAAC,WAA0B,EAAE,SAAiC,EAAE,MAAuB;;QAC7G,MAAM,gBAAgB,GAAG,MAAA,IAAI,CAAC,UAAU,mCAAI,IAAI,CAAC;QACjD,eAAe,CAAC,oBAAoB,CAAC,gBAAgB,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;IACzF,CAAC;CAEF;AAhGD,0CAgGC"}
1
+ {"version":3,"file":"PropositionItem.js","sourceRoot":"","sources":["../../src/models/PropositionItem.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;EAUE;;;AAEF,+CAA6C;AAI7C,MAAM,eAAe,GAAG,4BAAa,CAAC,YAAY,CAAC;AAenD;;;;;;GAMG;AACH,MAAa,eAAe;IAO1B,YAAY,mBAAwC;QAClD,IAAI,CAAC,EAAE,GAAG,mBAAmB,CAAC,EAAE,CAAC;QACjC,IAAI,CAAC,MAAM,GAAG,mBAAmB,CAAC,MAAM,CAAC;QACzC,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC,IAAI,CAAC;QACrC,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC,IAAI,CAAC;QACrC,IAAI,CAAC,UAAU,GAAG,mBAAmB,CAAC,UAAU,CAAC;IACnD,CAAC;IAED;;;;OAIG;IACH,SAAS;QACP,OAAO,IAAI,CAAC,EAAE,CAAC;IACjB,CAAC;IAED;;;;OAIG;IACH,SAAS;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED;;;;OAIG;IACH,WAAW;QACT,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IAgCD,iBAAiB;IACjB,KAAK,CACH,sBAA8D,EAC9D,SAAkC,EAClC,MAAwB;QAExB,sCAAsC;QACtC,IAAI,OAAO,sBAAsB,KAAK,QAAQ,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YAC1E,mCAAmC;YACnC,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,sBAAsB,EAAE,IAAI,CAAC,CAAC;QAC5D,CAAC;aAAM,IAAI,OAAO,sBAAsB,KAAK,QAAQ,IAAI,sBAAsB,KAAK,IAAI,EAAE,CAAC;YACzF,yDAAyD;YACzD,IAAI,CAAC,gBAAgB,CAAC,sBAAsB,EAAE,SAAU,EAAE,MAAM,IAAI,IAAI,CAAC,CAAC;QAC5E,CAAC;IACH,CAAC;IAED;;OAEG;IACK,gBAAgB,CAAC,WAA0B,EAAE,SAAiC,EAAE,MAAuB;;QAC7G,MAAM,gBAAgB,GAAG,MAAA,IAAI,CAAC,UAAU,mCAAI,IAAI,CAAC;QACjD,eAAe,CAAC,oBAAoB,CAAC,gBAAgB,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;IACzF,CAAC;CAEF;AAhGD,0CAgGC"}
@@ -60,6 +60,10 @@ RCT_EXTERN_METHOD(handleJavascriptMessage
60
60
  : (NSString *)messageId handlerName
61
61
  : (NSString *)handlerName)
62
62
 
63
+ RCT_EXTERN_METHOD(evaluateJavascript
64
+ : (NSString *)messageId javascriptString
65
+ : (NSString *)javascriptString)
66
+
63
67
  RCT_EXTERN_METHOD(trackPropositionItem
64
68
  : (NSString *)uuid interaction
65
69
  : (NSString * _Nullable)interaction eventType
@@ -274,6 +274,37 @@ public class RCTAEPMessaging: RCTEventEmitter, MessagingDelegate {
274
274
  }
275
275
  }
276
276
 
277
+ @objc
278
+ func evaluateJavascript(
279
+ _ messageId: String,
280
+ javascriptString: String
281
+ ) {
282
+ guard let message = jsHandlerMessageCache[messageId] else {
283
+ print("[RCTAEPMessaging] evaluateJavascript: No message found in cache for messageId: \(messageId)")
284
+ return
285
+ }
286
+
287
+ guard let messageWebView = message.view as? WKWebView else {
288
+ print("[RCTAEPMessaging] evaluateJavascript: Could not get WKWebView from message")
289
+ return
290
+ }
291
+
292
+ messageWebView.evaluateJavaScript(javascriptString) { [weak self] result, error in
293
+ if let error = error {
294
+ print("[RCTAEPMessaging] evaluateJavascript error: \(error)")
295
+ }
296
+
297
+ self?.emitNativeEvent(
298
+ name: Constants.ON_JAVASCRIPT_RESULT_EVENT,
299
+ body: [
300
+ Constants.MESSAGE_ID_KEY: messageId,
301
+ Constants.JAVASCRIPT_STRING_KEY: javascriptString,
302
+ Constants.RESULT_KEY: result ?? NSNull()
303
+ ]
304
+ )
305
+ }
306
+ }
307
+
277
308
  /// MARK: - Unified PropositionItem Tracking Methods
278
309
 
279
310
  /**
@@ -17,10 +17,13 @@ class Constants {
17
17
  static let SHOULD_SHOW_MESSAGE_EVENT = "shouldShowMessage"
18
18
  static let URL_LOADED_EVENT = "urlLoaded"
19
19
  static let ON_JAVASCRIPT_MESSAGE_EVENT = "onJavascriptMessage"
20
+ static let ON_JAVASCRIPT_RESULT_EVENT = "onJavascriptResult"
20
21
  static let SUPPORTED_EVENTS = [
21
- ON_DISMISS_EVENT, ON_SHOW_EVENT, SHOULD_SHOW_MESSAGE_EVENT, URL_LOADED_EVENT, ON_JAVASCRIPT_MESSAGE_EVENT
22
+ ON_DISMISS_EVENT, ON_SHOW_EVENT, SHOULD_SHOW_MESSAGE_EVENT, URL_LOADED_EVENT, ON_JAVASCRIPT_MESSAGE_EVENT, ON_JAVASCRIPT_RESULT_EVENT
22
23
  ]
23
24
  static let MESSAGE_ID_KEY = "messageId"
24
25
  static let HANDLER_NAME_KEY = "handlerName"
26
+ static let JAVASCRIPT_STRING_KEY = "javascriptString"
25
27
  static let CONTENT_KEY = "content"
28
+ static let RESULT_KEY = "result"
26
29
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@adobe/react-native-aepmessaging",
3
- "version": "7.2.1",
3
+ "version": "7.3.0",
4
4
  "description": "Adobe Experience Platform support for React Native apps.",
5
5
  "homepage": "https://developer.adobe.com/client-sdks/documentation/",
6
6
  "license": "Apache-2.0",
@@ -39,5 +39,5 @@
39
39
  "installConfig": {
40
40
  "hoistingLimits": "dependencies"
41
41
  },
42
- "gitHead": "9e1fa8cd101f66602d9f9250fe8aa1f32b341da9"
42
+ "gitHead": "a55b63342c700922500ee85897a4f8ab5d9ca78c"
43
43
  }
package/src/Messaging.ts CHANGED
@@ -147,6 +147,7 @@ class Messaging {
147
147
  eventEmitter.addListener('onDismiss', (message: Message) => {
148
148
  const messageInstance = new Message(message);
149
149
  messageInstance._clearJavascriptMessageHandlers();
150
+ messageInstance._clearJavascriptResultHandlers();
150
151
  messagingDelegate?.onDismiss?.(messageInstance);
151
152
  });
152
153
 
@@ -17,6 +17,11 @@ const RCTAEPMessaging = NativeModules.AEPMessaging;
17
17
  // Registery to store inAppMessage callbacks for each message in Message.handleJavascriptMessage
18
18
  // Record - {messageId : {handlerName : callback}}
19
19
  const jsMessageHandlers: Record<string, Record<string, (content: string) => void>> = {};
20
+
21
+ // Registery to store inAppMessage result callbacks for each message in Message.evaluateJavascript
22
+ // Record - {messageId : {javascriptString : callback}}
23
+ const jsResultHandlers: Record<string, Record<string, (result: string) => void>> = {};
24
+
20
25
  const handleJSMessageEventEmitter = new NativeEventEmitter(RCTAEPMessaging);
21
26
 
22
27
  // invokes the callback registered in Message.handleJavascriptMessage with the content received from the inAppMessage webview
@@ -27,6 +32,15 @@ handleJSMessageEventEmitter.addListener('onJavascriptMessage', (event) => {
27
32
  }
28
33
  });
29
34
 
35
+ handleJSMessageEventEmitter.addListener('onJavascriptResult', (event) => {
36
+ const {messageId, javascriptString, result} = event;
37
+ if (jsResultHandlers[messageId] && jsResultHandlers[messageId][javascriptString]) {
38
+ // Convert result to string to maintain API parity
39
+ const resultString = result == null ? '' : String(result);
40
+ jsResultHandlers[messageId][javascriptString](resultString);
41
+ }
42
+ });
43
+
30
44
  class Message {
31
45
  id: string;
32
46
  autoTrack: boolean;
@@ -117,6 +131,32 @@ class Message {
117
131
  RCTAEPMessaging.handleJavascriptMessage(this.id, handlerName);
118
132
  }
119
133
 
134
+ /**
135
+ * Asynchronously evaluates the specified JavaScript string in the context of the message's WebView.
136
+ * @param {string} javascriptString: The JavaScript string to evaluate.
137
+ * @param {function} callback: A callback to be invoked when the script execution completes with the result of the execution.
138
+ */
139
+ evaluateJavascript(javascriptString: string, callback: (result: string) => void) {
140
+ // validate parameters
141
+ if (!javascriptString) {
142
+ console.warn('[AEP Messaging] evaluateJavascript: javascriptString is required');
143
+ return;
144
+ }
145
+
146
+ if (typeof callback !== 'function') {
147
+ console.warn('[AEP Messaging] evaluateJavascript: callback must be a function');
148
+ return;
149
+ }
150
+
151
+ // cache the callback
152
+ if (!jsResultHandlers[this.id]) {
153
+ jsResultHandlers[this.id] = {};
154
+ }
155
+ jsResultHandlers[this.id][javascriptString] = callback;
156
+
157
+ RCTAEPMessaging.evaluateJavascript(this.id, javascriptString);
158
+ }
159
+
120
160
  /**
121
161
  * @internal - For internal use only.
122
162
  * Clears all the javascript message handlers for the message.
@@ -126,6 +166,16 @@ class Message {
126
166
  _clearJavascriptMessageHandlers() {
127
167
  delete jsMessageHandlers[this.id];
128
168
  }
169
+
170
+ /**
171
+ * @internal - For internal use only.
172
+ * Clears all the javascript result handlers for the message.
173
+ * This function must be called if the callbacks registered in evaluateJavascript are no longer needed.
174
+ * Failure to call this function may lead to memory leaks.
175
+ */
176
+ _clearJavascriptResultHandlers() {
177
+ delete jsResultHandlers[this.id];
178
+ }
129
179
  }
130
180
 
131
181
  export default Message;
@@ -65,3 +65,34 @@ When the user clicks the button inside of this in-app message, the handler confi
65
65
  ```bash
66
66
  JavaScript body passed to react native callback: callbacks are cool!
67
67
  ```
68
+
69
+ # Execute JavaScript methods from native code
70
+
71
+ You can execute JavaScript in an in-app message from native code by completing the following steps:
72
+ - [Implement and assign a `Messaging Delegate`](#implement-and-assign-a-messaging-delegate-1)
73
+ - [Call the Javascript method](#call-the-javascript-method)
74
+
75
+ ## Implement and assign a `Messaging Delegate`
76
+
77
+ To register a JavaScript event handler with a Message object, you will first need to implement and set a MessagingDelegate.
78
+ Please read the [documentation](../README.md/#programmatically-control-the-display-of-in-app-messages) for more detailed instructions on implementing and using a MessagingDelegate.
79
+
80
+ ## Call the JavaScript method
81
+
82
+ In the `onShow` function of `MessagingDelegate`, call `evaluateJavascript(javascriptString: string, callback: (result: string) => void)`.
83
+
84
+ ### Example
85
+
86
+ ```typescript
87
+ Messaging.setMessagingDelegate({
88
+ onShow: msg => {
89
+ console.log('show', msg);
90
+ msg.evaluateJavascript(
91
+ "(function() {console.log('my test'); return 'some result';})();",
92
+ (result: string) => {
93
+ console.log('Result:', result);
94
+ }
95
+ );
96
+ }
97
+ });
98
+ ```