插件
应用内消息
@nativescript/firebase-in-app-messaging
内容
简介
此插件允许您在 NativeScript 应用中使用 Firebase 应用内消息 SDK。
为 Firebase 设置您的应用
在使用 Firebase 应用内消息之前,您需要为 Firebase 设置您的应用。要为您的 NativeScript 应用设置和初始化 Firebase,请遵循 @nativescript/firebase-core 插件文档中的说明。
将 Firebase 应用内消息 SDK 添加到您的应用
要将 Firebase 应用内消息 SDK 添加到您的应用,请按照以下步骤操作
- 通过在项目根目录中运行以下命令来安装
@nativescript/firebase-in-app-messaging
插件。
npm install @nativescript/firebase-in-app-messaging
- 通过在应用的主文件中(例如
app.ts
或main.ts
)导入@nativescript/firebase-in-app-messaging
模块来添加 SDK。
import '@nativescript/firebase-in-app-messaging'
Firebase 应用内消息限制
根据 github 问题 https://github.com/firebase/firebase-ios-sdk/issues/4768,Firebase 应用内消息每天仅允许在应用前台或应用启动时进行 1 次活动。此限制是为了防止您意外地向用户发送过多不相关的消息。但是,如果您使用上下文触发器(例如 Analytics 事件或以编程方式触发的应用内消息活动),则没有每日速率限制。
创建消息活动
要创建消息活动,请转到 Firebase 控制台 中的“应用内消息”页面,并按照那里的说明操作。您可以创建活动并自定义元素,例如图像、横幅、模态和卡片,以显示在预定义事件(例如购买)上。
从 Firebase 控制台发布的任何活动都会自动处理并在用户的设备上显示。
控制消息显示
要控制是否显示消息,请将 InAppMessaging
实例的 isMessagesDisplaySuppressed
属性设置为 true
或 false
。InAppMessaging
实例是通过在 FirebaseApp 实例上调用 inAppMessaging()
返回的。默认情况下,isMessagesDisplaySuppressed
设置为 false
,这意味着将显示消息。
import { firebase } from '@nativescript/firebase-core'
import '@nativescript/firebase-in-app-messaging'
async function bootstrap() {
firebase().inAppMessaging().isMessagesDisplaySuppressed = true
}
async function onSetup(user) {
await setupUser(user)
// Allow user to receive messages now setup is complete
firebase().inAppMessaging().isMessagesDisplaySuppressed = false
}
注意
抑制状态不会在重启之间持久化,因此请确保在尽可能早的时候调用它,理想情况下是在应用引导文件中(app.ts
或 main.ts
)。
触发上下文消息
要触发上下文消息,请使用事件名称作为参数调用 InAppMessaging
实例的 triggerEvent()
方法。这将触发在 Firebase 控制台上配置的任何消息的显示。
import { firebase } from '@nativescript/firebase-core'
firebase().inAppMessaging().triggerEvent('purchase')
API
InAppMessaging 类
app
inAppMessagingApp = firebase().inAppMessaging().app
app
属性返回当前 InAppMessaging
实例关联的 FirebaseApp
实例。
isAutomaticDataCollectionEnabled
firebase().inAppMessaging().isAutomaticDataCollectionEnabled = true
有关此属性的说明,请参阅 Firebase 文档上的 isAutomaticDataCollectionEnabled。
isMessagesDisplaySuppressed
firebase().inAppMessaging().isMessagesDisplaySuppressed = true
// or
firebase().inAppMessaging().isMessagesDisplaySuppressed = false
有关此属性的说明,请参阅 Firebase 文档上的 areMessagesSuppressed。
triggerEvent()
firebase().inAppMessaging().triggerEvent(eventId)
参数 | 类型 | 描述 |
---|---|---|
eventId | 字符串 | 要触发的事件的名称。 |
有关此方法的说明,请参阅 Firebase 文档上的 triggerEvent。
许可证
Apache 许可证 2.0 版