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

在android studio中点击firebase推送通知,如何打开特定的用户界面?

马国源
2023-03-14

>

firebaseService类

公共类FirebaseMessagingService扩展了com.google.firebase.messaging。FirebaseMessagingService{private static int count=0;@Override public void onMessageReceived(@NonNull RemoteMessage RemoteMessage){super.onMessageReceived(RemoteMessage);Log.d(标记,“From:”RemoteMessage.getFrom());

      // Check if message contains a data payload.
      if (remoteMessage.getData().size() > 0) {

          Log.d(TAG, "Message data payload: " + remoteMessage.getData());
          startService(new Intent(getApplicationContext(),UserDetailsActivity.class));

/*消息数据有效负载:消息通知正文:*/

      }

      // Check if message contains a notification payload.
      if (remoteMessage.getNotification() != null) {
          Log.d(TAG, "Message Notification Body: " + remoteMessage.getNotification().getBody());

      }

  }

}

*androidMainfest

<service
    android:name=".backgroundService.FirebaseMessagingService"
    android:exported="false">
    <intent-filter>
        <action android:name="com.google.firebase.MESSAGING_EVENT" />
        <action android:name="com.google.android.c2dm.intent.RECEIVE" />
    </intent-filter>
</service>

共有2个答案

娄嘉石
2023-03-14

在启动器activer上

if (getIntent().getExtras() != null) {
    for (String key : getIntent().getExtras().keySet()) {
        String value = getIntent().getExtras().getString(key);
        Log.d(TAG, "Key: " + key + " Value: " + value);
    }
}
翟理
2023-03-14

根据文档,当接收到同时具有通知和数据有效载荷的消息并且应用程序处于后台模式时,通知被传递到设备的系统托盘,并且数据有效载荷被传递到启动器活动意图的额外部分。选项1:您可以尝试在launch activity中处理数据,然后从那里启动UserDetailsActivity,并在不显示UI的情况下快速完成launcher活动。https://firebase.google.com/docs/cloud-messaging/android/receive

选项2:不从FCM发送通知部分,只发送有效负载部分。在onmessagereceived()方法中,为UserDetails活动或服务构造具有挂起意图的通知。

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

  • 我是谷歌Chrome推送通知的新手,我刚刚在stackoverflow上阅读了一些问题和答案,我已经用这个简单的推送通知JavaScript结束了。 它只是简单的通知,但我需要打开一个新的窗口与其他网页后点击通知。 我知道这是可能的,但我找不到使用“ServiceWorker”语法的示例。 请帮帮忙。多谢了。

  • 我看到了一个Firebase控制台的代码:如何为通知指定click_action,我使用了该通知,但在初始化变量CLS时出现了一个错误。我试图通过定义CLS=NULL来解析,以清除错误。它无法使用click_action打开我指定的活动 拜托,我有没有搞错什么?我怎么才能让它起作用?

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

  • 我正在尝试使用python向所有用户发送推送通知。但是,我知道没有办法使用应用程序做到这一点,您必须使用主题(据我所知)。有没有办法可以从应用程序中创建主题?谢谢编辑:我对Firebase完全陌生(如果我很困难,很抱歉)

  • 我在通知中收到了一个包名,我想在点击通知后打开play store中的特定应用程序。如何继续呢?