Я отправляю уведомления Firebase через свой собственный веб-сервис с PHP, как показано ниже.
$url = 'https://fcm.googleapis.com/fcm/send';
$fields = array(
'registration_ids' => $tokens,
'data' => $message
);
$headers = array(
'Authorization:key = SERVER_KEY ',
'Content-Type: application/json'
);
1.Новости появляются, когда приложение находится на переднем плане и в фоновом режиме без каких-либо проблем. Но если я удалил приложение из последнего лотка, тогда уведомления не появятся, мне, должно быть, придется обработать это решение для этого? (например, уведомления Whatsup показывают все сценарии, даже если я отключил это приложение от настроек)
2. Когда я получил уведомление от "onMessageReceived", как передать это сообщение, содержимое тела для моей активности/фрагментов?
3. В некоторых случаях я хочу отправлять уведомления всем, вместо того, чтобы добавлять все маркеры в массив. любой другой способ обработки, как "отправить ALL", что-то вроде этого?
public class MyFirebaseMessagingService extends FirebaseMessagingService {
private static final String TAG = "MsgService";
@Override
public void onMessageReceived(RemoteMessage remoteMessage) {
Log.d(TAG, "From: " + remoteMessage.getFrom());
Log.d(TAG, "Data Payload : " + remoteMessage.getData());
sendNotification(remoteMessage.getData().get("message"));
}
private void sendNotification(String messageBody) {
Intent intent = new Intent(this, MainActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, intent,
PendingIntent.FLAG_ONE_SHOT);
Uri defaultSoundUri= RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this)
.setSmallIcon(R.mipmap.ic_launcher)
.setContentTitle("Firebase Push Notification")
.setContentText(messageBody)
.setAutoCancel(true)
.setSound(defaultSoundUri)
.setContentIntent(pendingIntent);
NotificationManager notificationManager =
(NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
notificationManager.notify(0, notificationBuilder.build());
}
}
Неудачные устройства: (Уведомления удалены не приходят после удаления из последнего лотка)
- MI Redmi Примечание 2 (5.0.2 Lollipop)
- Huawei honor 5c (5.1.1 Lollipop)
Превосходные устройства: (Уведомления удаляются из последнего лотка)
- HTC One X (4.2 желе Bean)
- Samsung Galaxy Grand Prime (4.4 Kitkat)