使用
implementation 'com.google.firebase:firebase-analytics:17.2.1'
implementation 'com.google.firebase:firebase-inappmessaging-display:19.0.2'
我在使用 Firebase 中的“在设备上测试”功能时收到消息 我在使用事件“on_foreground”时也会收到消息,但我不想直接在应用程序启动时显示消息,而是在进入新屏幕时(当我发送事件“Show_Category_Screen”时)
像这样
FirebaseAnalytics mFirebaseAnalytics = FirebaseAnalytics.getInstance(activity);
mFirebaseAnalytics.logEvent("Show_Category_Screen", null);
然后我将 InApp Message 触发事件设置为“Show_Category_Screen”。但是什么也没发生
事件成功显示在 Firebase 的 DebugView 中
我在日志中看到了这个
I/FIAM.Headless: Successfully fetched 2 messages from backend
I/FIAM.Headless: Removing display event listener
I/FIAM.Headless: Already impressed InAppCategoryMessage ? : false
我的 iOS 应用程序也有同样的问题。可以这样做吗?
最佳答案
我今天开始玩应用内消息传递,使用著名的试错法花了一些时间来弄明白。
触发事件有两种方式:
FirebaseAnalytics.getInstance(this).logEvent("main_screen_opened", null);
和
FirebaseInAppMessaging.getInstance().triggerEvent("main_screen_opened");
我发布了一个带有触发器 main_screen_opened
的广告系列,因为您不能在测试时执行此操作,测试消息会在应用打开时显示:
现在,确保在 Activity 的 onResume()
中调用 triggerEvent()
或 logEvent()
,它如果您在 OnCreate()
上执行此操作将不起作用!
@Override
protected void onResume() {
super.onResume();
FirebaseAnalytics.getInstance(this).logEvent("main_screen_opened", null);
FirebaseInAppMessaging.getInstance().triggerEvent("main_screen_opened");
...
}
注意:*它(可能?)不会在第一次触发,以免立即打扰用户。当您转到主屏幕并返回应用程序时,它现在应该会显示。
编辑:经过更多测试后,如果将它放在 onCreate()
中就可以了。当您检查日志记录时,您会看到
Already impressed <your campaign name> ? : false
第二次执行 logEvent()
/Trigger()
时,弹出窗口会出现
关于android - InApp Messaging 不会在自定义事件上显示消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58857581/