5

使用

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 消息触发事件设置为“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 应用程序中遇到了同样的问题。是否有可能做到这一点?

4

2 回答 2

6

我今天开始玩应用程序消息传递,这需要一些使用著名的试错技术来解决。

触发事件有两种方式:

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(),弹出窗口会出现

于 2019-11-22T13:23:30.817 回答
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);

我使用上述步骤解决了同样的问题。

于 2020-04-02T10:11:14.517 回答