slide1 n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Денис Кретов {НОТИССИМУС | Технический директор} PowerPoint Presentation
Download Presentation
Денис Кретов {НОТИССИМУС | Технический директор}

Loading in 2 Seconds...

play fullscreen
1 / 34

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


  • 183 Views
  • Uploaded on

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

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Денис Кретов {НОТИССИМУС | Технический директор}' - fritz-dale


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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
push geofencing microsoft azure

Кросс-платформенныеPush - уведомления и Geofencing? Нет ничего проще с сервисами Microsoft Azure.

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

slide3

Десятки тысяч Push-уведомлений

ежедневно

40+ клиентов

Интернет-магазинов

500К+ установок

1 push

Часть 1. Push - уведомления

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

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

Клиентское устройство

Служба уведомлений

(Notification Service)

Сервер

Приложений

(Mobile Backend)

azure push
Azure – координационный центр для отправки Push – уведомлений

Windows 8

GoogleAndroid

iOS

Windows Phone

Azure Notification Hub

Сервер приложений

WNS

MPNS

GSM

APNs

azure
Почему Azure

Доставка

десятков

тысяч

уведомлений

в день

iOS

Android

Win8

WinPhone

Готовые

библиотеки,

Native SDK,

Xamarin

693 руб. /

500 000

уведомлений

в месяц

Масштаби

рование

Кроссплатофор

менность

Простота

использования

Стоимость

для клиентов

push azure
Этапы разработки для рассылки Push-уведомлений с помощью Azure

Разработка

сервиса

по управлению

рассылкой

Конфигуриро

ваниеNotification

Hub-а

Разработка

клиентской

части

Сбор и

анализ

статистики

Отладка

средствами

Visual Studio

и Azure

Шаг #1

Шаг #2

Шаг #3

Шаг #4

Шаг #5

notification hub
Конфигурирование Notification Hub-а

Подключение сервиса

windows notification settings

windows phone notification settings (mpns)

apple notification settings

google cloud messaging settings

Azure

xamarin ios
Клиентская часть. 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) => {

});

}

winphone 8 1
Клиентская часть. 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);

slide13
DEMO

Отправка Push – уведомлений на WinPhone 8.1

Денис Кретов

slide14
Разработка инструмента по управлению рассылкой.

Azure SDK

DB

База данных

для хранения рассылок и статистики

Интерфейс

по управлению

рассылкой, отчеты

Сервис отправки

уведомлений по

расписанию

slide15
Интерфейс для управления рассылкой.

Ограничения

iOS – 256 bytes;

Android – 1024 bytes;

Windows Phone – 3Kb;

slide16
Сервис отправки сообщений. iOS

varhub = NotificationHubClient.CreateClientFromConnectionString(

[ConnectionString], [NotificationHub]);

varalert = string.Format("{{\"aps\":{{\"alert\":\"{0}\"}}}}", text);

await hub.SendAppleNativeNotificationAsync(alert);

winphone
Сервис отправки сообщений. 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);

slide18
Сбор и анализ статистики. Регистрация устройств.
slide19
Сбор и анализ статистики. Количество отправленных сообщений.
slide20
Сбор и анализ статистики. Сводный отчет.Проблемы и пути решения.

Статистика запусков

приложений в разрезе

каждой платформы.

Фиксируем факт

запуска приложения.

Windows Azure

База данных

для хранения

статистики

Сводный отчет

Программный доступ

к метрикам через Rest

интерфейс.

Сводный

отчет

Notification Hub. Статистика отправленных уведомлений в разрезе каждой платформы.

slide21
Сбор и анализ статистики. Сводный отчет.

База данных

для хранения

статистики

Сводный

отчет

slide22
Немного статистики наших клиентов.

Самый

популярный

день недели

для рассылки

уведомлений

Средний процент

запусков по отношению к количеству отправленных уведомлений

Количество зарегистрированных в Azure устройств

Средний рост посещаемости в день рассылки

50K +

Пятница 

20%

на 100%

slide23
Персонализированная рассылка Push – уведомлений.

При регистрации приложение передает уникальный ID в виде Tag (Tag:”UniqueGuid”)

В момент отправки уведомления мы указываем Tag для которого идет рассылка

await hub.SendMpnsNativeNotificationAsync(alert, new List()<string>{“UniqueGuid”});

2 geofencing

Часть 2. Geofencing

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

slide25
Рассмотрим два сценария определения местонахождения пользователя

GPS

Bluetooth LE (iBeacon)

gps geofencing
GPS Geofencing

Azure Mobile Services

Уведомление

Мобильное

устройство

Запрос на уведомление с заданными координатами

Background

GPS Location

Service

Широта

Долгота

Сканирование

координат на

предмет пересечения

областис заданным

радиусом

Радиус R

gps geofencing xamarin ios
GPS Geofencing. Xamarin.iOS

protected CLLocationManager _locMgr;

publicGeofencingLocationManager(CLCircularRegionclRegion)

{

_locMgr = new CLLocationManager();

//Определяем область geofencing

_locMgr.StartMonitoring(clRegion);

//Указываем события в момент входа в область geofencing

_locMgr.RegionEntered += HandleRegionEntered;

//Указываем события в момент выхода из области geofencing

_locMgr.RegionLeft += HandleRegionLeft;

}

ibeacon geofencing
iBeaconGeofencing

Azure Mobile Services

Уведомление

в соответствии

с ID

Мобильное

устройство

Запрос на уведомление,

cодержащийID Beacon

Bluetooth LE

Enabled

Сканирование

Bluetooth LE

устройств на

предмет вхождения

в область сигнала

ID Beacon

Сигнал до ~30 м

ibeacon geofencing xamarin ios
iBeaconGeofencing. Xamarin.iOS

protected CLLocationManager _locMgr;

publicGeofencingLocationManager(CLBeaconRegionbeaconRegion)

{

_locMgr = new CLLocationManager();

// Указываем beacon

_locMgr.StartMonitoring(beaconRegion);

//Указываем события в момент входа в область beacon

_locMgr.RegionEntered += HandleRegionEntered;

//Указываем события в момент выхода из области beacon

_locMgr.RegionLeft += HandleRegionLeft;

}

DEMO

ibeacon geofencing winphone 8 1
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);

}

}

azure azure mobile services
Какие задачи в данных сценариях решаетAzure? Azure Mobile Services.

База данных проекта

Единый API для связи между базой данных и мобильными приложениями

Отправка Push-уведомлений

slide32
DEMO
  • Bluetooth LE в связке с iPhone, Xamarinи Visual Studio

Денис Кретов

slide33
Спасибо за внимание!

Денис Кретов

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

kretov.d@notissimus.com;http://notissimus.com;http://tapki.com