nativescript-plugin-firebase-updated
Version:
59 lines (58 loc) • 2.47 kB
JavaScript
let _firInAppMessagingDisplayDelegate;
export function onMessageClicked(callback) {
ensureDelegate();
_firInAppMessagingDisplayDelegate.setOnMessageClickedCallback(callback);
}
export function onMessageImpression(callback) {
ensureDelegate();
_firInAppMessagingDisplayDelegate.setOnMessageImpressionCallback(callback);
}
export function triggerEvent(eventName) {
FIRInAppMessaging.inAppMessaging().triggerEvent(eventName);
}
function ensureDelegate() {
if (!_firInAppMessagingDisplayDelegate) {
FIRInAppMessaging.inAppMessaging().delegate = _firInAppMessagingDisplayDelegate = FIRInAppMessagingDisplayDelegateImpl.new();
}
}
class FIRInAppMessagingDisplayDelegateImpl extends NSObject {
static new() {
if (FIRInAppMessagingDisplayDelegateImpl.ObjCProtocols.length === 0 && typeof (FIRInAppMessagingDisplayDelegate) !== "undefined") {
FIRInAppMessagingDisplayDelegateImpl.ObjCProtocols.push(FIRInAppMessagingDisplayDelegate);
}
return super.new();
}
setOnMessageClickedCallback(callback) {
this.onMessageClickedCallback = callback;
}
setOnMessageImpressionCallback(callback) {
this.onMessageImpressionCallback = callback;
}
displayErrorForMessageError(inAppMessage, error) {
console.log("InAppMessaging error: " + error.localizedDescription);
}
impressionDetectedForMessage(inAppMessage) {
console.log("InAppMessaging impression");
this.onMessageImpressionCallback && this.onMessageImpressionCallback({
campaignName: inAppMessage.campaignInfo.campaignName
});
}
messageClicked(inAppMessage) {
console.log("InAppMessaging clicked");
this.onMessageClickedCallback && this.onMessageClickedCallback({
campaignName: inAppMessage.campaignInfo.campaignName
});
}
messageClickedWithAction(inAppMessage, action) {
console.log("InAppMessaging clicked with action, text: " + action.actionText + ", url: " + action.actionURL);
this.onMessageClickedCallback && this.onMessageClickedCallback({
campaignName: inAppMessage.campaignInfo.campaignName,
actionText: action.actionText,
actionURL: action.actionURL.absoluteString
});
}
messageDismissedDismissType(inAppMessage, dismissType) {
console.log("InAppMessaging dismissed");
}
}
FIRInAppMessagingDisplayDelegateImpl.ObjCProtocols = [];