1 / 34

Денис Кретов {НОТИССИМУС | Технический директор}

Кросс-платформенные Push - уведомления и Geofencing ? Нет ничего проще с сервисами Microsoft Azure. Денис Кретов {НОТИССИМУС | Технический директор}. Десятки тысяч Push- уведомлений ежедневно. 40+ клиентов Интернет-магазинов. 500К+ установок. Часть 1. Push - уведомления.

fritz-dale
Download Presentation

Денис Кретов {НОТИССИМУС | Технический директор}

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Кросс-платформенныеPush - уведомления и Geofencing? Нет ничего проще с сервисами Microsoft Azure. Денис Кретов {НОТИССИМУС | Технический директор}

  2. Десятки тысяч Push-уведомлений ежедневно 40+ клиентов Интернет-магазинов 500К+ установок

  3. Часть 1. Push - уведомления Все, что вы хотели знать о Push – уведомлениях, но боялись спросить 

  4. Принцип работы Push - уведомлений • Регистрируем устройство пользователя в службе уведомлений (Notification Service) и получаем уникальных адрес устройства (devicetoken, Uniform Resource Identifier и т.п.) • Регистрируем уникальных адрес на сервере приложений (Mobile Backend) • Отправляем уведомление из Mobile Backend в Notification Service • Notification Service отправляет уведомление на устройство • Notification Service передает в Mobile Backend информацию о некорректном адресе устройства Клиентское устройство Служба уведомлений (Notification Service) Сервер Приложений (Mobile Backend)

  5. Azure – координационный центр для отправки Push – уведомлений Windows 8 GoogleAndroid iOS Windows Phone Azure Notification Hub Сервер приложений WNS MPNS GSM APNs

  6. Почему Azure Доставка десятков тысяч уведомлений в день iOS Android Win8 WinPhone Готовые библиотеки, Native SDK, Xamarin 693 руб. / 500 000 уведомлений в месяц Масштаби рование Кроссплатофор менность Простота использования Стоимость для клиентов

  7. Этапы разработки для рассылки Push-уведомлений с помощью Azure Разработка сервиса по управлению рассылкой Конфигуриро ваниеNotification Hub-а Разработка клиентской части Сбор и анализ статистики Отладка средствами Visual Studio и Azure Шаг #1 Шаг #2 Шаг #3 Шаг #4 Шаг #5

  8. Конфигурирование Notification Hub-а Подключение сервиса windows notification settings windows phone notification settings (mpns) apple notification settings google cloud messaging settings Azure

  9. Клиентская часть. Xamarin.iOS. //регистрация в Apple Notification Service. UIApplication.SharedApplication.RegisterForRemoteNotificationTypes(notificationTypes); … //Если регистрация в Apple NotificationService прошла успешно public override void RegisteredForRemoteNotifications(UIApplication application, NSDatadeviceToken) { … //регистрация в Azure Hub Hub.RegisterNativeAsync(deviceToken, tags, (errorCallback) => { … }); }

  10. Клиентская часть. WinPhone8.1 //регистрация в Mobile Phone Notification Service. varchannel = await PushNotificationChannelManager.CreatePushNotificationChannelForApplicationAsync(); //Подключение к Azure MobileServiceClientmsdevconfClient = new MobileServiceClient( "https://*.azure-mobile.net/", “SecurityKey"); //регистрация channel.Uriв Azure await App.msdevconfClient.GetPush().RegisterNativeAsync(channel.Uri);

  11. Отладка. Рассылка тестовых сообщений.

  12. DEMO Отправка Push – уведомлений на WinPhone 8.1 Денис Кретов

  13. Разработка инструмента по управлению рассылкой. Azure SDK DB База данных для хранения рассылок и статистики Интерфейс по управлению рассылкой, отчеты Сервис отправки уведомлений по расписанию

  14. Интерфейс для управления рассылкой. Ограничения iOS – 256 bytes; Android – 1024 bytes; Windows Phone – 3Kb;

  15. Сервис отправки сообщений. iOS varhub = NotificationHubClient.CreateClientFromConnectionString( [ConnectionString], [NotificationHub]); varalert = string.Format("{{\"aps\":{{\"alert\":\"{0}\"}}}}", text); await hub.SendAppleNativeNotificationAsync(alert);

  16. Сервис отправки сообщений. WinPhone varhub = NotificationHubClient.CreateClientFromConnectionString( [ConnectionString], [NotificationHub]); varalert = string.Format("<?xml version=\"1.0\" encoding=\"utf-8\"?><wp:Notificationxmlns:wp=\"WPNotification\"><wp:Toast><wp:Text1>Уведомление</wp:Text1><wp:Text2>{0}</wp:Text2><wp:Toast></wp:Notification>", text); await hub.SendMpnsNativeNotificationAsync(alert);

  17. Сбор и анализ статистики. Регистрация устройств.

  18. Сбор и анализ статистики. Количество отправленных сообщений.

  19. Сбор и анализ статистики. Сводный отчет.Проблемы и пути решения. Статистика запусков приложений в разрезе каждой платформы. Фиксируем факт запуска приложения. Windows Azure База данных для хранения статистики Сводный отчет Программный доступ к метрикам через Rest интерфейс. Сводный отчет Notification Hub. Статистика отправленных уведомлений в разрезе каждой платформы.

  20. Сбор и анализ статистики. Сводный отчет. База данных для хранения статистики Сводный отчет

  21. Немного статистики наших клиентов. Самый популярный день недели для рассылки уведомлений Средний процент запусков по отношению к количеству отправленных уведомлений Количество зарегистрированных в Azure устройств Средний рост посещаемости в день рассылки 50K + Пятница  20% на 100%

  22. Персонализированная рассылка Push – уведомлений. При регистрации приложение передает уникальный ID в виде Tag (Tag:”UniqueGuid”) В момент отправки уведомления мы указываем Tag для которого идет рассылка await hub.SendMpnsNativeNotificationAsync(alert, new List()<string>{“UniqueGuid”});

  23. Часть 2. Geofencing Отправка локальных уведомлений в зависимости от местонахождения пользователя.

  24. Рассмотрим два сценария определения местонахождения пользователя GPS Bluetooth LE (iBeacon)

  25. GPS Geofencing Azure Mobile Services Уведомление Мобильное устройство Запрос на уведомление с заданными координатами Background GPS Location Service Широта Долгота Сканирование координат на предмет пересечения областис заданным радиусом Радиус R

  26. GPS Geofencing. Xamarin.iOS protected CLLocationManager _locMgr; publicGeofencingLocationManager(CLCircularRegionclRegion) { _locMgr = new CLLocationManager(); //Определяем область geofencing _locMgr.StartMonitoring(clRegion); //Указываем события в момент входа в область geofencing _locMgr.RegionEntered += HandleRegionEntered; //Указываем события в момент выхода из области geofencing _locMgr.RegionLeft += HandleRegionLeft; }

  27. iBeaconGeofencing Azure Mobile Services Уведомление в соответствии с ID Мобильное устройство Запрос на уведомление, cодержащийID Beacon Bluetooth LE Enabled Сканирование Bluetooth LE устройств на предмет вхождения в область сигнала ID Beacon Сигнал до ~30 м

  28. iBeaconGeofencing. Xamarin.iOS protected CLLocationManager _locMgr; publicGeofencingLocationManager(CLBeaconRegionbeaconRegion) { _locMgr = new CLLocationManager(); // Указываем beacon _locMgr.StartMonitoring(beaconRegion); //Указываем события в момент входа в область beacon _locMgr.RegionEntered += HandleRegionEntered; //Указываем события в момент выхода из области beacon _locMgr.RegionLeft += HandleRegionLeft; } DEMO

  29. iBeaconGeofencing. WinPhone8.1. Скоро. Package.appxmanifest <Capabilities> <m2:DeviceCapability Name="bluetooth.genericAttributeProfile"> <m2:Device Id="any"> <m2:Function Type="serviceId:ID beacon"/></m2:Device> </m2:DeviceCapability></Capabilities> Page.xaml.cs protected override async void OnNavigatedTo(NavigationEventArgs e) { foreach (DeviceInformation di in await DeviceInformation.FindAllAsync(BluetoothLEDevice.GetDeviceSelector())){ BluetoothLEDevicebluetoothLEDevice = await BluetoothLEDevice.FromIdAsync(di.Id); } }

  30. Какие задачи в данных сценариях решаетAzure? Azure Mobile Services. База данных проекта Единый API для связи между базой данных и мобильными приложениями Отправка Push-уведомлений

  31. DEMO • Bluetooth LE в связке с iPhone, Xamarinи Visual Studio Денис Кретов

  32. Спасибо за внимание! Денис Кретов {НОТИССИМУС, Технический директор} kretov.d@notissimus.com;http://notissimus.com;http://tapki.com

More Related