使用
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应用程序中存在相同的问题。可以这样做吗?
答案 0 :(得分:1)
我今天开始玩应用程序消息传递,这使用了著名的反复试验技术来弄清楚。
有两种触发事件的方法:
FirebaseAnalytics.getInstance(this).logEvent("main_screen_opened", null);
和
FirebaseInAppMessaging.getInstance().triggerEvent("main_screen_opened");
我已使用触发器main_screen_opened
发布了一个广告系列,因为您在测试时无法执行此操作,因此测试消息会在应用打开时显示:
现在,请确保您在活动的triggerEvent()
中调用logEvent()
或onResume()
,如果您在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()
时,将显示弹出窗口
答案 1 :(得分:0)
在应用build.gradle
文件中添加以下行:
// in app messaging
implementation 'com.google.firebase:firebase-inappmessaging-display:19.0.3'
implementation 'com.google.firebase:firebase-analytics:17.2.2
在onCreate()
的开始活动中添加以下几行
FirebaseDatabase.getInstance().setPersistenceEnabled(false);
FirebaseInAppMessaging.getInstance().setAutomaticDataCollectionEnabled(true);
我通过上述步骤解决了同样的问题。