Android Firebase应用程序内消息显示在SplashActivity中。如何在MainActivity中显示它?

Android Firebase应用程序内消息显示在SplashActivity中。如何在MainActivity中显示它?,android,firebase,kotlin,firebase-in-app-messaging,Android,Firebase,Kotlin,Firebase In App Messaging,我已经为我的android应用程序启用了Firebase应用程序内消息。当我测试应用程序内消息时,它显示在应用程序的活动中 活动流如:SplashActivity>LoginActivity>MainActivity 注: SplashActivity只有runnable才能获得3秒的延迟。 LoginActivity有一些功能来检查共享首选项是否不为空 我尝试在下面这行代码中添加onCreate(): FirebaseInAppMessaging.getInstance().SetMessag

我已经为我的android应用程序启用了Firebase应用程序内消息。当我测试应用程序内消息时,它显示在应用程序的活动中

活动流如:SplashActivity>LoginActivity>MainActivity 注: SplashActivity只有runnable才能获得3秒的延迟。 LoginActivity有一些功能来检查共享首选项是否不为空

我尝试在下面这行代码中添加onCreate():
FirebaseInAppMessaging.getInstance().SetMessagesAppressed(true)


和onDestroy()中的
FirebaseInAppMessaging.getInstance().setMessagesSuppressed(false)


我希望此消息显示在MainActivity中。

我刚刚遇到此消息,因为我还有一个启动器活动一直在获取我的通知。我假设您将飞溅活动设置为启动器:

        <activity android:name=".SplashActivity"
          android:theme="@style/SplashTheme">
          <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
          </intent-filter>
        </activity>
,其关键点如下所示:

  • 应用程序在后台:通知由FCM自动发送到通知托盘。当用户触摸通知时,通过启动清单中包含android.intent.category.LAUNCHER的活动,应用程序将被带到前台

通读整个链接线程,因为这是一个最近不断发展的领域。

Firebase应用程序内消息由分析事件触发

如果要在MainActivity中显示消息->

class MainActivity : AppCompatActivity() { 
override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    ...
    FirebaseAnalytics.getInstance(this).logEvent("main_activity_ready",null)
    //or 
    //FirebaseInAppMessaging.getInstance().triggerEvent("main_activity_ready");

}
}
并在firebase控制台中选择此事件

在不同的活动中使用下面的方法“启动”和“停止”应用消息传递

public static void inAppMessagingInitialization(Context context, boolean setSuppressed,String eventName){ //setSuppressed false means start getting message
    FirebaseInAppMessaging.getInstance().setMessagesSuppressed(setSuppressed); //true==Stop inAppMessaging

    if (!eventName.equals("")){
        FirebaseAnalytics.getInstance(context).logEvent(eventName,null); //To Show InAppMessage in MainActivity. Need to add this event name in Web console campaign
        FirebaseInAppMessaging.getInstance().triggerEvent(eventName);
    }
}
如果您不想在SplashActivity中显示,请调用上述方法,如下所示:

inAppMessagingInitialization(context,true,""); //Stops inAppMessaging
要在MainActivity中显示InAppMessage,请调用下面的方法,并在InAppMessageing控制台中设置事件名称

inAppMessagingInitialization(context,false,"main_activity_inappmessaging"); //Starts inAppMessaging

我也面临同样的问题。你们解决了这个问题吗?@Nayan解决了那个问题?我已经在github问题跟踪上发布了同样的问题。也许有人会从开发者那里回答这个问题。请投上一票或订阅观看回复。这个答案无论如何都没有帮助,发布它的原因是什么?应用内消息完全不同的GCM…FirebaseInAppMessaging.getInstance().triggerEvent(“主活动准备就绪”)的体系结构对我很有用