Firebase onMessageReceived() 在某些具有数据有效负载的设备中,当应用被终止时,不会调用



我知道当应用程序被杀死时,我们需要发送data有效负载才能发送推送通知,onMessageReceived()方法将调用。

但是在阅读了 100 多个 SO 答案和文章后,我得出结论,在许多设备上,即使使用数据有效载荷,onMessageReceived()也不会调用。

仍然有什么方法可以在这些设备中显示通知。

使用此方法 id FirebaseMessaging class

@Override
    public boolean zzE(Intent intent) {
        Log.e(TAG, "zzE");
        Set<String> keys = intent.getExtras().keySet();
        Log.e(TAG, "" + keys);
        Iterator<String> it = keys.iterator();
        while (it.hasNext()) {
            Log.e(TAG, "zzE " + it.next());
        }
        for (String key : keys) {
            try {
                Log.e("uniq", " " + key + " " + intent.getExtras().get(key));
                if (key.equals("data")) {
                    String cnt = intent.getExtras().get(key).toString();
                    Gson gson = new GsonBuilder().setPrettyPrinting().create();
                    NotificationModel model = gson.fromJson(cnt, NotificationModel.class);
                    int badgeCount = model.getCount();
                    Log.e("uniq", " badge count " + badgeCount);
                    ShortcutBadger.applyCount(this, badgeCount);
                    Log.e("uniq", " " + "end");
                }
            } catch (Exception e) {
                Log.e("uniqbadge", "zzm Custom_FirebaseMessagingService" + e.getMessage());
            }
        }
        return super.zzE(intent);
    }
使用此方法,

当应用程序处于已终止状态时,我通过此方法从Firebase向我的应用程序图标显示bagde。您可以通过意图发送数据并打开所需的活动。

相关内容

  • 没有找到相关文章

最新更新