显示消息回调未调用 - Firebase应用内消息传递

问题描述 投票:0回答:1

我正在尝试自定义firebase应用内消息。

我关注这篇文章:https://firebase.google.com/docs/in-app-messaging/customize-messages

根据文章,我创建了自己的FirebaseInAppMessagingDisplay类实现。

import com.google.firebase.inappmessaging.FirebaseInAppMessagingDisplay;
import com.google.firebase.inappmessaging.FirebaseInAppMessagingDisplayCallbacks;
import com.google.firebase.inappmessaging.model.InAppMessage;

public class MyMessageDisplayImplementation implements 
FirebaseInAppMessagingDisplay {
    @Override
    public void displayMessage(InAppMessage inAppMessage
        , FirebaseInAppMessagingDisplayCallbacks 
    firebaseInAppMessagingDisplayCallbacks) {
         Log.e("INAPP_MESSAGE","received an inapp message");
    }
}

然后使用无头Firebase In-App Messaging SDK注册此实现

public class MyApplication extends Application{

@Override
public void onCreate() {
    super.onCreate();
    FirebaseInAppMessaging.getInstance().setMessageDisplayComponent(new MyMessageDisplayImplementation());
}

}

我的问题是,我没有得到displyaMessage()回调。

当我从Application类中注释掉代码行" FirebaseInAppMessaging.getInstance().setMessageDisplayComponent(new MyMessageDisplayImplementation());"时,它显示了默认消息。但是,当我把这个代码放回去时,什么也没发生。

如果有人知道这个应用内消息自定义的更好的想法,请帮助。

android firebase android-custom-view firebase-in-app-messaging
1个回答
0
投票

firebase文档中的信息有点令人困惑。其实很简单。

在app level gradle文件中添加了这些依赖项。

implementation 'com.google.firebase:firebase-core:16.0.8'
implementation ("com.google.firebase:firebase-inappmessaging:17.0.3")

注意:我们不需要添加“实施'com.google.firebase:firebase-inappmessaging-display:17.1.1'”依赖项

在启动活动上注册DisplayMessage组件。

import com.google.firebase.inappmessaging.FirebaseInAppMessaging
import com.google.firebase.inappmessaging.FirebaseInAppMessagingDisplay

///////

override fun onStart() {
    super.onStart()
    Log.e("MESSAGE", "activity started")
    var firebaseInAppMessagingDisplay = FirebaseInAppMessagingDisplay { inAppMessage, cb ->
        // You can show the message here.
        // The variable inAppMessage has all information about the campaign that we putting in console (title, content, image url.. etc)
        Log.e("MESSAGE", "Display Message callback invoked")
    }
    FirebaseInAppMessaging.getInstance().setMessageDisplayComponent(firebaseInAppMessagingDisplay)
}
© www.soinside.com 2019 - 2024. All rights reserved.