Xamarin, Android: настроить стандартное уведомление - PullRequest
0 голосов
/ 24 мая 2018

Мы используем наш сервер для отправки push-уведомлений на каждый отдельный телефон.Но я бы хотел немного изменить макет уведомления, но не смог понять, как это сделать.Уведомление выглядит следующим образом: enter image description here

Таким образом, уже есть несколько пользовательских макетов с этим маленьким колокольчиком.Название и текст поступают с сервера и «КНИГА ЖИЗНИ» из приложения.Так что должен быть способ переопределить это, верно?Мне удалось добраться до текста уведомления следующим образом:

    protected override Android.App.Notification BuildNotification(Context context, PushMessage pushMessage)
    {
        // TODO customize the notification
        pushMessage.Text = "xy";
        return base.BuildNotification(context, pushMessage);
    }

Но я просто не могу найти способ изменить макет.Как бы я переопределил звонок и общий макет?

Спасибо :)

1 Ответ

0 голосов
/ 24 мая 2018

Проще, чем ожидалось - это касается всех уведомлений GCM.

protected override void OnPushReceived(Context context, PushMessage pushMessage)
    {
        base.OnPushReceived(context, pushMessage);
        SendNotification(pushMessage.Message, pushMessage.Title, context);
    }

    void SendNotification(string message, string title, Context ctx)
    {
        var intent = new Intent(ctx, typeof(ReadAsset));
        intent.AddFlags(ActivityFlags.ClearTop);
        var pendingIntent = PendingIntent.GetActivity(ctx, 0, intent, PendingIntentFlags.OneShot);

        var notificationBuilder = new Notification.Builder(ctx)
            .SetSmallIcon(Resource.Drawable.icon)
            .SetContentTitle(title)
            .SetContentText(message)
            .SetAutoCancel(true)
            .SetContentIntent(pendingIntent);

        var notificationManager = (NotificationManager)ctx.GetSystemService
            (Context.NotificationService);
        notificationManager.Notify(0, notificationBuilder.Build());
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...