Msdevcon.ru#msdevcon. %@@ 0? $ 1 1@1 % 00 > 1 %$ 1 %0 00@! 1 %111 !# 1% ? 01 011 >11 @% %0 10%010@# ?# >% %## #1> 11 0 1! #1 0 0 0$$ > ###%0%01 !1 0 @

Презентация:



Advertisements
Похожие презентации
© 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or.
Advertisements

© 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or.
Windows ® Azure Platform. Управление пользователями и ролями Управление правилами брандмауэра Содержание.
Windows ® Azure Platform. Создание сервера SQL Azure Создание базы данных Создание правил брандмауэра Управление базой данных Содержание.
Windows ® Azure Platform. Обзор возможностей ДEМО: Получение информации и управление приложением в «облаке» Содержание.
24%24% 71%71% Silverlight ?????? infoinfo Браузер somedomain.com.
Как продвигается тестирование? Как происходит сборка? Мы устраняем дефекты? На сколько качественно мы чиним дефекты? Мы готовы к выпуску?
Microsoft TechDays Илья Рудь MCT ЦКО «Специалист»
Организация push- уведомлений в приложениях для Windows 8, iOS, Android, Windows Phone Ефимцева Наталия
Новый цикл разработки Интерфейс для создания Silverlight приложений.
Разработка приложений – делаем лучше Владимир Колесников Windows Phone 7 Camp.
DevCon12 // msdevcon.ru #msdevcon May 23-24, 2012 Microsoft.
bool allowed = App.Current.Detach(); if (allowed){ //Показать что-нибудь пользователю } if(App.Current.RunningOffline) //Приложение запущено вне браузера.
Шавкат Айнурин / Shavkat Aynurin
Microsoft TechDays Дмитрий Сошников Академический евангелист, Майкрософт Россия
Microsoft TechDays Иван Андреев.
Разработка приложений – делаем лучше Windows Phone 7 Day.
Microsoft TechDays Абраменко Денис Инженер IBS Datafort.
Microsoft TechDays Владимир Безмалый MVP Consumer Security Microsoft Security Trusted Adviser.
Microsoft TechDays Илья Рудь MCT ЦКО «Специалист»
Транксрипт:

msdevcon.ru#msdevcon

0? $ 1 % 00 > 1 %$ 1 %0 1 %111 !# 1% ? %0 ?# >% %## #1> ! # $$ > ###%0%01 !1 #10# % 1 #1 % #1 >1 %>1 !0 0# > >1%! 0> ?$1001 >> ?00 %0 1# 1! >>1! 0 > 0 % # 1$ 1 > !$ % $ #0% >0$ > 110> # ?> # >>01 >$$! 110 1# # ! 0 1 #> % 100 !10 00%? >1 $10>0 > 0 0$ ??10 ## ?1 ?? 10>!# %01 # % $ 1 1% >0#1? ## ?!0# 10 0#$ 1> 0 1$?1 %?1# %> 011 #0

1! 0? $ 1 % 00 > 1 %$ 1 %0 1 %111 !# 1% ? %0 ?# >% %## #1> ! # $$ > ###%0%01 !1 #10# % 1 #1 % #1 >1 %>1 !0 0# > >1%! 0> ?$1001 >> ?00 %0 1# 1! >>1! 0 > 0 % # 1$ 1 > !$ % $ #0% >0$ > 110> # ?> # >>01 >$$! 110 1# # ! 0 1 #> % 100 !10 00%? >1 $10>0 > 0 0$ ??10 ## ?1 ?? 10>!# %01 # % $ 1 1% >0#1? ## ?!0# 10 0#$ 1> 0 1$?1 %?1# %> 011 #0

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

Служба уведомлений (Notification Service) Сервер Приложений (Mobile Backend) Клиентское устройство

APNs Azure Notification Hub Сервер приложений iOS Windows 8 WNSMPNSGSM Windows Phone GoogleAndroid

Доставка десятков тысяч уведомлений в день iOS Android Win8 WinPhone Готовые библиотеки, Native SDK, Xamarin 693 руб. / уведомлений в месяц

Конфигуриро вание Notification Hub-а Разработка клиентской части Отладка средствами Visual Studio и Azure Разработка сервиса по управлению рассылкой Сбор и анализ статистики

Azure

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

//регистрация в Mobile Phone Notification Service. var channel = await PushNotificationChannelManager.CreatePushNotificationChannelForApplicationA sync(); //Подключение к Azure MobileServiceClient msdevconfClient = new MobileServiceClient( " SecurityKey"); //регистрация channel.Uri в Azure await App.msdevconfClient.GetPush().RegisterNativeAsync(channel.Uri);

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

Ограничения iOS – 256 bytes; Android – 1024 bytes; Windows Phone – 3Kb;

var hub = NotificationHubClient.CreateClientFromConnectionString( [ConnectionString], [NotificationHub]); var alert = string.Format("{{\"aps\":{{\"alert\":\"{0}\"}}}}", text); await hub.SendAppleNativeNotificationAsync(alert);

var hub = NotificationHubClient.CreateClientFromConnectionString( [ConnectionString], [NotificationHub]); var alert = string.Format(" Уведомление {0} ", text); await hub.SendMpnsNativeNotificationAsync(alert);

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

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

Количество зарегистрирова нных в Azure устройств Самый популярный день недели для рассылки уведомлений Средний процент запусков по отношению к количеству отправленных уведомлений Средний рост посещаемости в день рассылки

await hub.SendMpnsNativeNotificationAsync(alert, new List() {UniqueGuid});

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

GPS Bluetooth LE (iBeacon)

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

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

Package.appxmanifest protected override async void OnNavigatedTo(NavigationEventArgs e) { foreach (DeviceInformation di in await DeviceInformation.FindAllAsync(BluetoothLEDevice.GetDeviceSelector())){ BluetoothLEDevice bluetoothLEDevice = await BluetoothLEDevice.FromIdAsync(di.Id); } Page.xaml.cs

Спасибо за внимание! Денис Кретов {НОТИССИМУС, Технический директор}

© 2014 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.