Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 23 additions & 3 deletions apps/AEPSampleAppNewArchEnabled/app/MessagingView.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,6 @@ import { useRouter } from 'expo-router';
const SURFACES = ['android-cbe-preview', 'cbe/json', 'android-cc'];
const SURFACES_WITH_CONTENT_CARDS = ['android-cc'];


const messagingExtensionVersion = async () => {
const version = await Messaging.extensionVersion();
console.log(`AdobeExperienceSDK: Messaging version: ${version}`);
Expand All @@ -53,8 +52,21 @@ const setMessagingDelegate = () => {
console.log('Result:', result);
});
},
shouldShowMessage: () => true,
shouldSaveMessage: () => true,
shouldShowMessage: msg => {
const msgId = msg.id; // use this message id to save the message in the cache
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think it would be nice to have a toggle switch for shouldShow and shouldSave to set the boolean value.

console.log('msgId', msgId);

// return true to show the message else return false to suppress the message
// if you want to save the message in order to show it later, set shouldSaveMessage to true
return true;
},
shouldSaveMessage: msg => {
const msgId = msg.id; // use this message id to save the message in the cache
console.log('msgId', msgId);

// return true to save the message in the cache else return false to not save the message
return true;
},
urlLoaded: (url, message) => console.log(url, message),
});
console.log('messaging delegate set');
Expand Down Expand Up @@ -82,6 +94,13 @@ const getLatestMessage = async () => {
console.log('Latest Message:', message);
};

const showMessage = async () => {
const messageId = 'MESSAGE_ID'; // replace MESSAGE_ID with the id of the message you want to show
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

we can have a global variable for saving message id which will save the latest saved message. In case we want to add a specific message I'd we have this comment to provide it here.

const message = new Message({id: messageId, autoTrack: true});
message.show();
console.log(`message with id ${messageId} shown`);
}

// this method can be used to track click interactions with content cards
const trackContentCardInteraction = async () => {
const messages = await Messaging.getPropositionsForSurfaces(SURFACES_WITH_CONTENT_CARDS);
Expand Down Expand Up @@ -159,6 +178,7 @@ function MessagingView() {
/>
<Button title="getCachedMessages()" onPress={getCachedMessages} />
<Button title="getLatestMessage()" onPress={getLatestMessage} />
<Button title="showMessage()" onPress={showMessage} />
<Button title="trackAction()" onPress={trackAction} />
<Button title="trackPropositionInteraction()" onPress={trackContentCardInteraction} />
<Button title="trackContentCardDisplay()" onPress={trackContentCardDisplay} />
Expand Down