- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试“捕获”发送到应用程序的 firebase 云消息,当我收到(/单击)一条消息时,我想根据在 firebase 控制台中添加的“自定义数据”键/值执行一些操作。
我的代码现在是这样的:
MyFirebaseMessagingService:
package com.company.app;
import android.util.Log;
import androidx.annotation.NonNull;
import com.google.firebase.messaging.FirebaseMessagingService;
import com.google.firebase.messaging.RemoteMessage;
import java.util.Map;
public class MyFirebaseMessagingService extends FirebaseMessagingService {
private static final String TAG = "Notification";
@Override
public void onMessageReceived(@NonNull RemoteMessage remoteMessage) {
super.onMessageReceived(remoteMessage);
Log.i(TAG, "Receiving notification...");
for (Map.Entry<String, String> entry : remoteMessage.getData().entrySet()) {
String key = entry.getKey();
String value = entry.getValue();
Log.d(TAG, "key, " + key + " value " + value);
}
}
}
AndroidManifest.xml:
...
<!-- Firebase notification -->
<service
android:name=".MyFirebaseMessagingService"
android:exported="false">
<intent-filter>
<action android:name="com.google.firebase.MESSAGING_EVENT" />
</intent-filter>
</service>
</application>
build.gradle(模块:应用程序):
dependencies {
//Google firebase
implementation 'com.google.firebase:firebase-analytics:17.2.1'
implementation 'com.google.firebase:firebase-messaging:20.0.1'
...
我的猜测是 <service android:name=".MyFirebaseMessagingService" android:exported="false">
没有被执行,但我不明白为什么。我没有收到任何错误。除此之外,我的通知没有任何问题。
如果有任何帮助,这里是控制台日志:
D/FA: Logging event (FE): notification_receive(_nr),
Bundle[{
ga_event_origin(_o)=fcm,
message_device_time(_ndt)=0,
message_type(_nmc)=display,
message_name(_nmn)=B1 - TN18,
message_time(_nmt)=1574177464,
message_id(_nmid)=8950284200210511319}]
有什么想法吗?
编辑:相同的代码在一个空的应用程序中工作
编辑 2:问题是由 google 的 TWA LauncherActivity 以某种方式引起的
编辑 3:
public class LauncherActivityTWA extends AppCompatActivity {
private TwaLauncher mTwaLauncher;
...
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
...
this.mTwaLauncher.launch(getLaunchingUrl()); //this is causing the issue
}
编辑 4:现在我已经通过切换到 WebView 解决了这个问题,稍后我将尝试让它与 TWA 一起工作。我仍然认为这个问题是由 TWA 或与之相关的一些库以某种方式引起的
编辑 5:所以我找到了一种解决方法 - 如果您想同时继续使用 TWA 和 FCM,您将不得不只使用数据消息,通知消息似乎不会触发 onMessageReceived
即使应用程序在前台
最佳答案
From your question, I can guess you are receiving Data Message
@Override
public void onMessageReceived(RemoteMessage remoteMessage) {
if (remoteMessage == null)
return;
// Check if message contains a notification payload.
if (remoteMessage.getNotification() != null) {
handleNotification(remoteMessage.getNotification().getBody());
}
// Check if message contains a data payload.
if (remoteMessage.getData().size() > 0) {
String title = "", body = "", type = "";
Intent hIntent = new Intent(getApplicationContext(), HomePageActivity.class);
try {
for (Map.Entry<String, String> entry : remoteMessage.getData().entrySet())
{
String key = entry.getKey();
String value = entry.getValue();
CommonUtils.logThis(TAG, "key, " + key + " value " + value);
switch (key) {
case "title":
title = entry.getValue();
break;
case "body":
body = entry.getValue();
break;
case "type":
type = entry.getValue().toLowerCase();
break;
}
}
CommonUtils.logThis("jeev", "Type is : " + type);
switch (type) {
case "your_notification_type":
//write your code here
break;
}
} catch (Exception e) {
CommonUtils.logThis(TAG, "Exception: " + e.getMessage());
}
}
}
关于android - MyFirebaseMessagingService.onMessageReceived() 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58938234/
我收到来自 Firebase 的通知,但我创建的类无法正常工作(未参与操作)。好像它们是默认显示的。 public class MyFirebaseMessagingService extends F
我正在尝试“捕获”发送到应用程序的 firebase 云消息,当我收到(/单击)一条消息时,我想根据在 firebase 控制台中添加的“自定义数据”键/值执行一些操作。 我的代码现在是这样的: My
我正在尝试从 Google Firebase 向我的应用推送通知。但是在我的 AndroidManifest.xml 文件中,问题似乎出在 因为相同的名字出现在我得到错误
我需要从我的 MyFirebaseMessagingService 类中调用一个工作方法,该方法接受上下文作为参数。但是我无权访问 MyFirebaseMessagingService 中的应用上下文
编辑 24/11/2016:我刚刚收到来自 Firebase 支持的消息。他们认为这是华硕的问题。我使用的设备是 Asus ZenFone 2 Laser。这是他们的回应: The issue her
我正在使用 FirebaseInstanceId.getInstance().getToken(); 方法在我的 FcmInstanceIdService 中获取 token ,但由于这些已被弃用,我
我在 Android Studio 中遇到 Firebase 问题。这是发生了什么:在 Debug模式中,一切正常,遵循 AndroidManifest
我的应用在尝试从 Firebase 云消息传递接收通知消息时崩溃。 这是错误日志: E/AndroidRuntime: FATAL EXCEPTION: Firebase-MyFirebaseMess
这里我在 Kotlin 中使用了 FirebaseMessagingService,但是当我运行项目时,它会给我以下错误: Class 'MyFirebaseMessagingService' is
我正在使用 Firebase 消息传递,当我收到来自 firebase 控制台的通知时,我的应用程序因此异常而关闭 任何人都可以请建议我该怎么做我正在与这个问题作斗争超过 2 小时 我的 fireba
如何才能将数据库实例传递给扩展 FirebaseMessagingService 的 MyFirebaseMessagingService 类,以便我可以在本地保存 data 负载? 注意:我已经在我
我是一名优秀的程序员,十分优秀!