当前位置: 首页 > 知识库问答 >
问题:

从firebase通知中打开特定活动

谢运良
2023-03-14

我看到了一个Firebase控制台的代码:如何为通知指定click_action,我使用了该通知,但在初始化变量CLS时出现了一个错误。我试图通过定义CLS=NULL来解析,以清除错误。它无法使用click_action打开我指定的活动

public class ClickActionHelper { 
public static void startActivity(String className, Bundle extras, Context context){ 
Class cls=null; 
try { cls = Class.forName(className);
 }
catch(ClassNotFoundException e){ 
 //means you made a wrong input in firebase console 
} 
Intent i = new Intent(context, cls);
 i.putExtras(extras); context.startActivity(i); 
}     
}

拜托,我有没有搞错什么?我怎么才能让它起作用?

共有1个答案

戈宏义
2023-03-14

如果你想打开你的应用程序并执行一个特定的动作[在后台],在通知负载中设置click_action,并将它映射到你想要启动的活动中的一个意图过滤器。例如,将click_action设置为OPEN_ACTIVITY_1以触发如下所示的意图筛选器:

正如FCM文档中所建议的,要求后端以如下表单发送JSON数据,

{
    "to": "some_device_token",

    "content_available": true,
    "notification": {
        "title": "hello",
        "body": "yo",
        "click_action": "OPEN_ACTIVITY_1" // for intent filter in your activity
    },

    "data": {
        "extra": "juice"
    }
}

并在mainfest文件中为您的活动添加intent-filter,如下所示

<intent-filter>
  <action android:name="OPEN_ACTIVITY_1" />
  <category android:name="android.intent.category.DEFAULT" />
</intent-filter>
Bundle b = getIntent().getExtras();// add these lines of code to get data from notification
String someData = b.getString("someData");

有关更多帮助,请查看以下链接:

Firebase FCM通知click_action负载

Firebase onMessageReceived在后台应用程序时未调用

 类似资料:
  • 我正在工作的应用程序中,我被要求显示通知。对于通知,我使用的是FireBase云消息(FCM)。我能够得到通知,当应用程序在后台。 2.)MyFirebaseInstanceIDService 这是我在MyFirebaseMessagingService类中为onMessageReceived()方法编写的代码示例。

  • 当应用程序关闭时,我在使用FCM的聊天中收到有关新消息的通知。当我点击它时,我想打开聊天活动,但主活动会打开。 点击推送通知将打开主活动。在其中,我可以从intent获得一种类型的通知,并打开另一个活动: 在我看来,这种方法既肮脏又不方便。是否可以指定单击推送通知时将打开的活动? 编辑:解决问题的步骤: > 为要打开的活动添加意图过滤器: 向FCM消息添加click_action="you-act

  • 我知道这个问题似乎重复,但为了我的要求,我已经在网上搜索了很多帖子,但没有一个对我有效。 我的要求 为此,我尝试了以下场景 情景1 使用将通知数据从传输到Launcher/Main活动,并根据bundle数据重定向到特定活动/片段 情景3 通过使用 按照上面的场景,当应用程序打开时,一切工作都很好,但如果我的应用程序关闭了,则意味着它总是重定向到main/launcher活动

  • 我正在使用fcm控制台向所有安装了我的应用程序的设备发送消息,通知没有任何额外的负载,只有通知消息。 我想知道是否有一种简单的方法可以知道活动是否从FCM通知点击打开。 有一种解决方案是扩展FirebaseMessagingService并自己创建通知。 我想知道是否有其他解决方案,而不扩展服务或向通知传递额外内容。 是否传递了任何额外信息,用于从通知单击打开活动?

  • 我在Unity中使用FireBase云消息。我想在用户点击FireBase Cloud Messaging中到达的消息时打开一个链接。 在Firebase面板中,我将自定义数据“click_action”与URL值设置为message,当我单击OnMessageReceived方法中的通知时,我会收到它,如下所示: 如何防止在Unity中点击FCM消息时打开应用程序? 多谢了。