首页 > 解决方案 > 如何从 Android&FCM 中的推送通知中打开特定活动?

问题描述

在应用程序关闭时,我收到一条关于使用 FCM 聊天的新消息的通知。当我点击它时,我想打开聊天活动,但主要活动打开了。

单击推送通知将打开主要活动。在其中,我可以从意图中获取一种通知并打开另一个活动:

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    processNotification()
}

private fun processNotification() {
    val notificationCategory = intent?.extras?.getString("category") ?: return
    if (notificationCategory == "new_message") {
        startMessagingActivity()
        finish()
    }
}

这种方法在我看来很脏而且不方便。是否可以指定单击推送通知时将打开的活动?

编辑: 解决步骤:

  1. 向要打开的活动添加一个意图过滤器:

    <activity android:name=".messages.chatroom.ChatRoomActivity">
        <intent-filter>
            <action android:name="*your-action-name*"/>
            <category android:name="android.intent.category.DEFAULT"/>
        </intent-filter>
    </activity>
    
  2. 将 'click_action=" your-action-name "' 字段添加到您的 FCM 消息中。

Android 会自动打开 Activity,动作和 click_action 一样

标签: androidpush-notificationfirebase-cloud-messaging

解决方案


您将需要使用 Android 深度链接。

您的通知 (FCM) 应该具有一些数据的有效负载(消息 ID 完全取决于您的设计),用于您想要在这种情况下使用您的聊天活动的给定屏幕。

聊天活动需要在清单中声明主机和架构,以下是深度链接的说明和代码:

https://developer.android.com/training/app-links/deep-linking

快乐编码。


推荐阅读