Xamarin android push notification

Содержание
  1. Notifications in Xamarin.Android
  2. Local notifications in Android
  3. Walkthrough — using local notifications in Xamarin.Android
  4. Further reading
  5. Xamarin android push notification
  6. Latest commit
  7. Git stats
  8. Files
  9. README.md
  10. About
  11. Локальные уведомления в Xamarin.Forms
  12. Создание кросс-платформенного интерфейса
  13. Использование интерфейса в Xamarin.Forms
  14. Создание реализации интерфейса Android
  15. Создание класса AndroidNotificationManager
  16. Обработка входящих уведомлений в Android
  17. Создание реализации интерфейса iOS
  18. Создание класса iOSNotificationManager
  19. Обработка входящих уведомлений в iOS
  20. Тестирование приложения
  21. Руководство по Отправка push-уведомлений в приложения Xamarin.Android с помощью Центров уведомлений
  22. Обзор
  23. Предварительные требования
  24. создадите проект Firebase и включите Firebase Cloud Messaging;
  25. Создание концентратора уведомлений
  26. Настройка параметров GCM/FCM для центра уведомлений
  27. Создание приложения Xamarin.Android и его подключение к концентратору уведомлений
  28. Создание проекта Visual Studio и добавление пакетов NuGet
  29. Добавление JSON-файла сервисов Google
  30. Настройка центров уведомлений в проекте
  31. Регистрация в Firebase Cloud Messaging
  32. Отправка тестового уведомления с портала Azure
  33. Дальнейшие действия

Notifications in Xamarin.Android

This section explains how to implement notifications in Xamarin.Android. It describes the various UI elements of an Android notification and discusses the API’s involved with creating and displaying a notification.

Local notifications in Android

This section explains how to implement local notifications in Xamarin.Android. It describes the various UI elements of an Android notification and discuss the APIs involved with creating and displaying a notification.

Walkthrough — using local notifications in Xamarin.Android

This walkthrough covers how to use local notifications in a Xamarin.Android application. It demonstrates the basics of creating and publishing a notification. When the user clicks on the notification in the notification drawer it starts up a second Activity.

Further reading

Firebase Cloud Messaging – Firebase Cloud Messaging (FCM) is a service that facilitates messaging between mobile apps and server applications. Firebase Cloud Messaging can be used to implement remote notifications (also called push notifications) in Xamarin.Android applications.

Notifications – This Android Developer topic is the definitive guide for Android notifications. It includes a design considerations section that helps you design your notifications so that they conform to the guidelines of the Android user interface. It provides more background information about preserving navigation when starting an Activity, and it explains how to display progress in a notification and control media playback on the Lock Screen.

NotificationListenerService – This Android service makes it possible for your app to listen to (and interact with) all notifications posted on the Android device, not just the notifications that your app is registered to receive. Note that the user must explicitly give permission to your app for it to be able to listen for notifications on the device.

Источник

Xamarin android push notification

Push Notification Plugin for Xamarin iOS and Android

Latest commit

Git stats

Files

Failed to load latest commit information.

README.md

Push Notification Plugin for Xamarin iOS and Android

Simple cross platform plugin for handling push notifications. Uses FCM for Android and APS for iOS.

  • Available on NuGet: http://www.nuget.org/packages/Plugin.PushNotification
  • Install into your .NETStandard project and Client projects.

Platform Support

Platform Version Tested
Xamarin.iOS iOS 8+ iOS13
Xamarin.Android API 15+ API 28

Call CrossPushNotification.Current from any project to gain access to APIs.

  • Receive push notifications
  • Support for push notification category actions
  • Customize push notifications
  • Localization
  • Storage of the push token can be overwritten by a delegate.

Here you will find detailed documentation on setting up and using the Push Notification Plugin for Xamarin

About

Push Notification Plugin for Xamarin iOS and Android

Источник

Локальные уведомления в Xamarin.Forms

Локальные уведомления — это оповещения, отправляемые приложениями, установленными на мобильном устройстве. Локальные уведомления часто используются для таких функций, как:

  • События календаря
  • Напоминания
  • Триггеры на основе расположения

Каждая платформа обрабатывает создание, отображение и использование локальных уведомлений по-разному. Из этой статье вы узнаете, как создать кроссплатформенную абстракцию для отправки, планирования и получения локальных уведомлений с помощью Xamarin.Forms.

Создание кросс-платформенного интерфейса

Приложение Xamarin.Forms должно создавать и использовать уведомления, не заботясь о реализации базовой платформы. Следующий интерфейс INotificationManager реализуется в общей библиотеке кода и определяет кросс-платформенный API, который приложение может использовать для взаимодействия с уведомлениями:

Этот интерфейс будет реализован в каждом проекте платформы. Событие NotificationReceived позволяет приложению обрабатывать входящие уведомления. Метод Initialize должен выполнять любую собственную логику платформы, необходимую для подготовки системы уведомлений. С помощью метода SendNotification в определенное время, заданное с помощью необязательного параметра DateTime , должно быть отправлено уведомление. Метод ReceiveNotification должен вызываться базовой платформой при получении сообщения.

Использование интерфейса в Xamarin.Forms

После создания интерфейса его можно использовать в общем проекте Xamarin.Forms, даже если реализация платформы еще не создана. Пример приложения содержит ContentPage имя ContentPage со следующим содержимым:

Макет содержит элементы Label с пояснением инструкций и элементы Button , которые позволяют отправить или запланировать уведомление при касании.

Код программной части класса MainPage обрабатывает отправку и получение уведомлений:

MainPage Конструктор класса использует Xamarin.Forms DependencyService для получения конкретного экземпляра платформы INotificationManager . Методы OnSendClick и OnScheduleClicked используют экземпляр INotificationManager для отправки и планирования новых уведомлений. Метод ShowNotification вызывается из обработчика событий, присоединенного к событию NotificationReceived , и вставляет новый Label в страницу при вызове события.

Обработчик событий NotificationReceived приводит свои аргументы событий к NotificationEventArgs . Этот тип определен в общем проекте Xamarin.Forms:

Дополнительные сведения о Xamarin.Forms DependencyService см. в разделе Xamarin.Forms DependencyService .

Создание реализации интерфейса Android

Чтобы приложение Xamarin.Forms отправляло и получало уведомления на Android, оно должно предоставить реализацию интерфейса INotificationManager .

Создание класса AndroidNotificationManager

Класс AndroidNotificationManager реализует интерфейс INotificationManager :

Атрибут assembly над пространством имен регистрирует реализацию INotificationManager интерфейса с DependencyService .

Android позволяет приложениям определять несколько каналов для уведомлений. Метод Initialize создает базовый канал, который образец приложения использует для отправки уведомлений. Метод SendNotification определяет логику конкретной платформы, необходимую для создания и отправки уведомления. При получении сообщения операционная система Android вызывает метод ReceiveNotification и обработчик событий.

Метод SendNotification позволяет создать локальное уведомление сразу или в определенное время ( DateTime ). Можно запланировать отправку уведомления на определенное время ( DateTime ) с помощью класса AlarmManager . Это уведомление получит объект, производный от класса BroadcastReceiver .

По умолчанию уведомления, запланированные с помощью класса AlarmManager , сбрасываются после перезагрузки устройства. Но можно реализовать в приложении возможность автоматически возобновить запланированные уведомления при перезапуске устройства. Дополнительные сведения см. в разделе Запуск службы сигнализации при перезагрузке устройства статьи Планирование повторяющихся сигналов на сайте developer.android.com и в примере. Сведения о фоновой обработке в Android см. в разделе Guide to Background processing (Руководство по фоновой обработке) на сайте developer.android.com.

Дополнительные сведения о широковещательных приемниках см. в статье Широковещательные приемники в Xamarin.Android.

Обработка входящих уведомлений в Android

Класс MainActivity должен обнаруживать входящие уведомления и уведомлять экземпляр AndroidNotificationManager . Атрибут Activity в классе MainActivity должен указывать значение LaunchMode для LaunchMode.SingleTop :

Режим SingleTop предотвращает запуск нескольких экземпляров Activity , пока приложение находится на переднем плане. LaunchMode не подходит для приложений, которые запускают несколько действий в более сложных сценариях уведомления. Дополнительные сведения о LaunchMode значениях перечисления см. в разделе LaunchMode .

В MainActivity класс изменен для получения входящих уведомлений:

Метод CreateNotificationFromIntent извлекает данные уведомления из аргумента intent и предоставляет их AndroidNotificationManager с помощью метода ReceiveNotification . Метод CreateNotificationFromIntent вызывается как из метода OnCreate , так и с помощью метода OnNewIntent :

  • При запуске приложения с помощью данных уведомления, данные Intent передаются в метод OnCreate .
  • Если приложение уже находится на переднем плане, данные Intent будут переданы методу OnNewIntent .

Android предлагает множество дополнительных параметров для уведомлений. Дополнительные сведения см. в статье Уведомления в Xamarin.Android.

Создание реализации интерфейса iOS

Чтобы приложение Xamarin.Forms отправляло и получало уведомления на iOS, оно должно предоставить реализацию INotificationManager .

Создание класса iOSNotificationManager

Класс iOSNotificationManager реализует интерфейс INotificationManager :

Атрибут assembly над пространством имен регистрирует реализацию INotificationManager интерфейса с DependencyService .

В iOS перед попыткой планирования уведомления необходимо запросить разрешение на использование уведомлений. Метод Initialize запрашивает авторизацию для использования локальных уведомлений. Метод SendNotification определяет логику, необходимую для создания и отправки уведомления. При получении сообщения операционная система iOS вызовет метод ReceiveNotification и обработчик событий.

Метод SendNotification отвечает за немедленное создание локального уведомления с помощью объекта UNTimeIntervalNotificationTrigger или в определенное время ( DateTime ) с помощью объекта UNCalendarNotificationTrigger .

Обработка входящих уведомлений в iOS

В iOS необходимо создать делегат, который делит UNUserNotificationCenterDelegate на подклассы для обработки входящих сообщений. Пример приложения определяет класс iOSNotificationReceiver :

Этот класс использует DependencyService для получения экземпляра класса iOSNotificationManager и предоставляет входные данные уведомления методу ReceiveNotification .

Во время запуска приложения класс AppDelegate должен указывать объект iOSNotificationReceiver в качестве делегата UNUserNotificationCenter . Это происходит в методе FinishedLaunching :

iOS предлагает множество дополнительных параметров для уведомлений. Дополнительные сведения см. в статье Уведомления в Xamarin.iOS.

Тестирование приложения

Приложение можно тестировать на обеих платформах после того, как проекты платформы будут содержать зарегистрированную реализацию интерфейса INotificationManager . Запустите приложение и нажмите любую кнопку для создания уведомлений.

В Android уведомления появятся в области уведомлений. Когда пользователь касается уведомления, приложение получает уведомление и отображает сообщение.

В iOS приложение автоматически получает входящие уведомления без необходимости ввода данных пользователем. Приложение получает уведомление и отображает сообщение:

Источник

Руководство по Отправка push-уведомлений в приложения Xamarin.Android с помощью Центров уведомлений

Обзор

В этом учебнике показано, как использовать Центры уведомлений Azure для отправки push-уведомлений в приложение Xamarin.Android. Вы создадите пустое приложение Xamarin.Android, которое получает push-уведомления с помощью Firebase Cloud Messaging. Вы сможете рассылать через Центр уведомлений push-уведомления на все устройства, где запущено ваше приложение. Готовый код доступен в примере приложения NotificationHubs.

При работе с этим руководством вы выполните следующие задачи:

  • создадите проект Firebase и включите Firebase Cloud Messaging;
  • Создание концентратора уведомлений
  • создадите приложение Xamarin.Android и подключите его к центру уведомлений;
  • отправите тестовые уведомления с портала Azure.

Предварительные требования

  • Подписка Azure. Если у вас еще нет подписки Azure, создайте бесплатную учетную запись Azure, прежде чем начинать работу.
  • Visual Studio с Xamarin на компьютере Windows или Visual Studio для Mac на компьютере OS X.
  • Активная учетная запись Google

создадите проект Firebase и включите Firebase Cloud Messaging;

Войдите в консоль Firebase. Создайте проект Firebase, если его еще нет.

После создания проекта выберите Add Firebase to your Android app (Добавить Firebase в приложение Android).

Выполните следующие действия на странице Add Firebase to your Android app (Добавление Firebase в приложение Android):

В поле Android package name (Имя пакета Android) введите имя пакета. Например: tutorials.tutoria1.xamarinfcmapp .

Выберите Регистрация приложения.

Выберите Download google-services.json (Скачать Download google-services.json). Затем сохраните файл в папку проекта и щелкните Далее. Если вы еще не создали проект Visual Studio, этот шаг можно выполнить после создания проекта.

Выберите Далее.

Выберите Пропустить этот шаг.

В консоли Firebase щелкните значок шестеренки возле имени проекта. Выберите пункт Project Settings (Параметры проекта).

Если вы еще не скачали файл google-services.json, вы можете скачать его на этой странице.

Переключитесь на вкладку Обмен сообщениями в облаке в верхней части. Скопируйте и сохраните Ключ сервера для последующего использования. Это значение будет использоваться для настройки концентратора уведомлений.

Создание концентратора уведомлений

Выберите Все службы в меню слева и щелкните Центры уведомлений в разделе Мобильный. Щелкните значок звездочки рядом с именем службы, чтобы добавить ее в раздел Избранное в меню слева. После добавления Центров уведомлений в Избранное выберите их в меню слева.

На странице Центры уведомлений выберите Добавить на панели инструментов.

На вкладке Основные сведения на странице Центр уведомлений выполните следующие действия:

В поле Подписка выберите имя подписки Azure, которую вы хотите использовать, а затем выберите существующую группу ресурсов или создайте новую.

Введите уникальное имя нового пространства имен в разделе Сведения о пространстве имен.

Пространство имен содержит один или несколько концентраторов уведомлений, поэтому укажите имя концентратора в разделе Сведения о Центре уведомлений. Или выберите существующее пространство имен в раскрывающемся списке.

Выберите значение в раскрывающемся списке Расположение. Это значение определяет расположение, в котором создается центр.

Нажмите кнопку Создать.

Последовательно выберите Уведомления (значок колокольчика) и Перейти к ресурсу. Вы также можете обновить список на странице Центры уведомлений и выбрать свой центр.

Выберите Политики доступа в списке. Обратите внимание, что станут доступны две строки подключения. Они потребуются позже для обработки push-уведомлений.

Не используйте в приложении политику DefaultFullSharedAccessSignature. Этот параметр можно использовать только в серверной части.

Настройка параметров GCM/FCM для центра уведомлений

Выберите Google (GCM/FCM)/ в разделе Параметры в меню слева.

Введите ключ сервера, записанный c консоли Google Firebase.

На панели инструментов щелкните Сохранить.

Концентратор уведомлений настроен для работы с GCM. Также у вас есть строки подключения, с помощью которых вы можете зарегистрировать приложение для получения уведомлений и отправки push-уведомлений.

Создание приложения Xamarin.Android и его подключение к концентратору уведомлений

Создание проекта Visual Studio и добавление пакетов NuGet

Действия, описанные в этом руководстве, предназначены для Visual Studio 2017.

В Visual Studio откройте меню Файл и выберите Создать, а затем — Проект. В окне Новый проект сделайте следующее.

Разверните Установлено, Visual C# , а затем нажмите кнопку Android.

Из списка выберите приложение Android (Xamarin) .

Введите имя проекта.

Выберите расположение для проекта.

Нажмите кнопку ОК.

В диалоговом окне нового приложения Android выберите Пустое приложение и щелкните ОК.

В окне обозревателя решений разверните раздел Свойства и выберите AndroidManifest.xml. Обновите имя пакета в соответствии с именем пакета, которое вы указали при добавлении Firebase Cloud Messaging в проект в консоли Google Firebase.

В качестве целевой версии Android для проекта укажите Android 10.0, выполнив следующие действия:

  1. Щелкните проект правой кнопкой мыши и выберите пункт Свойства.
  2. В поле Compile using Android version: (Target framework) (Компиляции с использованием версии Android: целевая платформа) выберите Android 10.0.
  3. Выберите Да в окне сообщения, чтобы продолжить изменение целевой платформы.

Добавьте необходимые пакеты NuGet в проект, выполнив следующие действия.

Щелкните проект правой кнопкой мыши и выберите Управление пакетами NuGet.

Перейдите на вкладку Установленные, выберите Xamarin.Android.Support.Design и щелкните Обновить в правой панели, чтобы обновить пакет до последней версии.

Перейдите на вкладку Обзор. Найдите Xamarin.GooglePlayServices.Base. Выберите Xamarin.GooglePlayServices.Base в списке результатов. Щелкните Установить.

В окне диспетчера пакетов NuGet выполните поиск пакета Xamarin.Firebase.Messaging. В списке результатов выберите Xamarin.Firebase.Messaging. Щелкните Установить.

Затем найдите пакет Xamarin.Azure.NotificationHubs.Android. В списке результатов выберите Xamarin.Azure.NotificationHubs.Android. Щелкните Установить.

Добавление JSON-файла сервисов Google

Скопируйте файл google-services.json , который вы скачали с консоли Google Firebase в папку проекта.

Добавьте google-services.json в проект.

Выберите google-services.json в окне обозревателя решений.

В области свойств для действия сборки выберите GoogleServicesJson. Если вы не видите GoogleServicesJson, закройте Visual Studio, перезапустите ее, затем повторно откройте проект и повторите попытку.

Настройка центров уведомлений в проекте

Регистрация в Firebase Cloud Messaging

Если выполняется миграция из Google Cloud Messaging в Firebase, файл проекта AndroidManifest.xml может содержать устаревшую конфигурацию GCM, которая может привести к дублированию уведомлений. Измените файл, удалив следующие строки в разделе при их наличии:

Добавьте следующие операторы перед приложением.

Подготовьте следующую информацию для вашего приложения Android и концентратора уведомлений.

  • Строка подключения для ожидания передачи данных. На Портал Azure на панели мониторинга выберите Просмотреть строки подключения. Скопируйте строку подключения для DefaultListenSharedAccessSignature для этого значения.
  • Имя центра — это имя вашего центра на Портал Azure. Например, mynotificationhub2.

В окне обозревателя решений щелкните проект правой кнопкой мыши, выберите Добавить, а затем — Класс.

Создайте класс Constants.cs для вашего проекта Xamarin и определите в классе следующие постоянные значения. Замените значения заполнителей на собственные значения.

Добавьте указанные ниже операторы using в MainActivity.cs .

Добавьте следующие свойства в класс MainActivity:

In MainActivity.cs , add the following code to OnCreate after base.OnCreate(savedInstanceState) :

Добавьте класс с именем AzureListener в свой проект.

Добавьте указанные ниже операторы using в AzureListener.cs .

Добавьте следующий код перед объявлением класса, настройте наследование класса от Java.Lang.Object и реализуйте INotificationListener :

Добавьте в класс AzureListener следующий код для обработки полученных сообщений.

Выполните сборку проекта.

Запустите приложение на устройстве или в загруженном эмуляторе.

Отправка тестового уведомления с портала Azure

Можно проверить, поступают ли в приложение уведомления, с помощью параметра Тестовая отправка на Портал Azure. Этот параметр позволяет отправить на устройство тестовое push-уведомление.

Push-уведомления обычно отправляются в серверной службе, например в мобильной службе или ASP.NET, с помощью совместимой библиотеки. Если библиотека недоступна для серверной части, можно также непосредственно использовать REST API для отправки сообщений с уведомлениями.

Дальнейшие действия

В рамках этого руководства вы отправили широковещательные уведомления на все устройства Android, зарегистрированные в серверной части. Чтобы узнать, как отправлять push-уведомления на конкретные устройства Android, перейдите к следующему руководству:

Источник

Читайте также:  Как можно стримить с андроид
Оцените статью