Как установить значок уведомления FCM

Я использую php curl для push-уведомлений, помогите мне добавить значок в мое уведомление
Я использую ниже php-код для push-уведомления

Использование плагина cordova firebase в моем приложении Работа над гибридным приложением с использованием телефонной связи, cordova
В настоящее время просто делаю это для приложения для Android

function sendFCM($title,$message, $id,$additional_data = "") {
   $url = 'https://fcm.googleapis.com/fcm/send';

   $fields = array (
        'registration_ids' => $id, //Device Ids
        'data' => array (

                 "additional_data"  =>$additional_data
        ),
        'notification' => array(
           'title' => $title,
           'body' => $message,
           'sound'=> 'default'
       )
   );
   $fields = json_encode ( $fields );

   $headers = array (
        'Authorization: key=' . "Server Key",
        'Content-Type: application/json'
   );

   $ch = curl_init ();
   curl_setopt ( $ch, CURLOPT_URL, $url );
   curl_setopt ( $ch, CURLOPT_POST, true );
   curl_setopt ( $ch, CURLOPT_HTTPHEADER, $headers );
   curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, true );
   curl_setopt ( $ch, CURLOPT_POSTFIELDS, $fields );

   $result = curl_exec ( $ch );
   curl_close ( $ch );
}
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
0
1 677
1

Ответы 1

Ты это:

код push-уведомления fcm с помощью приложения для Android

Мы создали классам:

  • Класс уведомления
  • Класс обслуживания токена

Класс обслуживания уведомлений Fcm

public class NotificationService extends FirebaseMessagingService {
private static final String TAG = "FCM";

boolean notification, sound, vibration;

@Override
public void onMessageReceived(RemoteMessage remoteMessage) {
    Log.d(TAG, remoteMessage.getNotification().getBody()+"");
    Log.d(TAG, remoteMessage.getNotification().getTitle()+"");
    Log.d(TAG, remoteMessage.getFrom()+"");
    Log.d(TAG, remoteMessage.getData()+"");
    addNotification(remoteMessage.getNotification());
}
private void addNotification(RemoteMessage.Notification data) {
    NotificationCompat.Builder builder =
            new NotificationCompat.Builder(this)
                    .setSmallIcon(R.drawable.icon)  // add icon 
                    .setContentTitle(data.getTitle()+"")
                    .setAutoCancel(true)
                    .setContentText(data.getBody()+"");
    Notification notification = new Notification();

    if (sound)
        notification.defaults |= Notification.DEFAULT_SOUND;

    if (vibration)
        notification.defaults |= Notification.DEFAULT_VIBRATE;

    builder.setDefaults(notification.defaults);
    Intent notificationIntent = new Intent(this, Service_confirmedActivity.class);
    PendingIntent contentIntent = PendingIntent.getActivity(this, 0, notificationIntent,
            PendingIntent.FLAG_ONE_SHOT);
    builder.setContentIntent(contentIntent);

    // Add as notification
    NotificationManager manager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
    manager.notify(0, builder.build());
}
  }

Класс обслуживания токена

public class TokenService extends FirebaseInstanceIdService {
private static final String TAG = "FirebaseIDService";
public static String DeviceToc = "";
@Override
public void onTokenRefresh() {
    // Get updated InstanceID token.
    String refreshedToken = FirebaseInstanceId.getInstance().getToken();
    Log.e(TAG, "Refreshed token: " + refreshedToken);

    DeviceToc = refreshedToken;
    Log.e("DeviceToc",""+refreshedToken);
    sendRegistrationToServer(refreshedToken);
}

private void sendRegistrationToServer(String token) {

    SharedPreferences pref = getApplicationContext().getSharedPreferences("MyPref", 0);

    SharedPreferences.Editor editor = pref.edit();
    editor.putString("deviceToc",token); // Storing string
    editor.commit();

    Log.i("token",""+token);

  }
  }

это помогает тебе

Другие вопросы по теме