- PVSM.RU - https://www.pvsm.ru -
Если вы интересовались разработкой приложений в metro-стиле под Windows 8, вы, наверное, уже знаете, что жизненный цикл этих приложений ближе к жизненному циклу приложений на Windows Phone. Это означает, что приложение, фактически не исполняется, когда пользователь его не видит. Таким образом, возникает вопрос, как приложения могут взаимодействовать друг с другом и системой.
В Windows 8 для приложений в metro-стиле для взаимодействия приложений друг с другом используются контракты, а для взаимодействия с системой – расширения.
Разнообразных контрактов и расширений достаточно много. Написать пост про то, какие контракты и расширения доступны разработчику, меня натолкнула статья Windows 8. Контракт «поиск» в деталях [1], после которой я решил систематизировать свои знания и собрать в одном месте краткие, буквально в несколько строчек, «how to» по большинству контрактов и расширений, с примерами из Windows SDK Samples [2].
Итак, приступим. Начнём с контрактов.
Как реализовать File Open Picker Contract:
1) добавить в проект элемент File Open Picket Contract (Add Item);
2) обрабатывать FileOpenPickerActivated;
3) использовать FileOpenPickerUI.
Как реализовать File Save Picker Contract:
1) определить в манифесте;
2) обрабатывать FileSavePickerActivated;
3) использовать FileSavePickerUI.
Пример приложение в которое реализует File Open и File Save Picker контракты [3]
Как реализовать поддержку кеширование с обновлением:
1) определить в манифесте;
2) зарегистрироваться на событие FileUpdateRequested;
3) обрабатывать запросы на обновление файлов;
4) требует поддержки со стороны удалённого сервера.
Как реализовать контракт поиска:
1) добавить элемент Search Contract в проект (Add Item);
2) реализовать страницу результатов поиска.
Пример приложения, реализующего контракт поиска [5]
Windows 8. Контракт «поиск» в деталях [1]
Как реализовать контракт Settings:
1) определить в манифесте;
2) подписаться на событие CommandRequested объекта SettingsPaneView;
3) зарегистрировать свои команды;
3) реализовать обработчик(и) команд.
Как сделать Share Target:
1) добавить элемент «Share Target Contract» в проект (Add Item);
2) добавить декларацию в манифест;
3) реализовать UI получения
Приложение, пример реализации целевого приложения для Share [7]
Как сделать Share Source:
1) зарегистрировать себя, вызвав DataTransferMnager;
2) вызвать ShowShareUI;
3) подготовить данные к передаче.
Приложение, пример реализации источников данных для Share [8].
Перейдём к расширениям.
Как реализовать Account Picture Provider:
1) добавить запись в манифест;
2) в обработчике OnActivated, отработать активацию по протоколу со схемой ms-accountpictureprovider;
3) отобразить интерфейс выбора;
4) установить выбранную картинку через UserInformation.SetAccountPicturesAsync.
Пример работы с данными аккаунта пользователя, включая его аватар [9]>
Как реализовать AutoPlay
1) добавить в манифест AutoPlay Content и/или AutoPlay Device;
2) реализовать обработку OnFileActivated.
Пример работы с Removable Storage с реализацией поддержки AutoPlay [10]
Как реализовать Background Tasks
1) добавить определение в манифест;
2) собстсвенно реализовать, в зависимости от типа залачи.
Тема фоновых задач более комплексная, чем большинство остальных, я её планирую рассмотреть подробно в следующих статьях.
Пример с основами работы с фоновыми задачами [11]
Пример фоновой задачи, запускающейся при приходе SMS [12]
Фоновая задача отразабывающая доступность сети [13]
Фоновая задача, обрабатывающая Raw оповещения [14]
Как реализовать контракт Camera Settings:
1) добавить определение в манифест;
2) в обработчике OnActivated приложения, отработать активацию по типу ActivationKind.CameraSettings;
3) реализовать необходимые настройки.
Пример приложения для камеры и реализующего расширение Camera Settings [15]
Подробное руководство по разработке приложений, работающих с камерой [16]
Как реализовать Contact Picker:
1) внести определение в манифест;
2) в обработчике OnActivated отработать тип активации ActivationKind.ContactPicker;
3) использовать ContactPickerUI для отображения списка контактов.
Пример приложения, реализующего расширение Contact Picker [17]
Как реализовать расширение File Activation:
1) добавить определение в манифест;
2) обработать событие OnFileActivated.
Пример приложения реализующего расширения File и Protocol Activation [18]
Как реализовать расширение Print Task Settings:
1) добавить определение в манифест;
2) обработать событие OnActivated с типом ActivationKind.PrintTaskSettings.
Пример приложения с реализованным контрактом Print Task Settings [20]
Подробное руководство по разработке приложений, работающих с принтером [21]
Как реализовать расширение Protocol Activation:
1) добавить определение в манифест;
2) обработать событие OnActivated для типа ActivationKind.Protocol.
Пример приложения реализующего расширения File и Protocol Activation [18]
Если хотите попробовать реализовать какой-нибудь контракт или расширение прямо сейчас, то чтобы начать разрабатывать приложения под Windows 8 нужно на Windows 8 [22] установить бесплатные средства разработки [23].
Автор: stasus
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/razrabotka/11130
Ссылки в тексте:
[1] Windows 8. Контракт «поиск» в деталях: http://habrahabr.ru/post/146518/
[2] Windows SDK Samples: http://code.msdn.microsoft.com/site/search?f%5B0%5D.Type=Contributors&f%5B0%5D.Value=Official%20Windows%20SDK%20Sample&f%5B0%5D.Text=Official%20Windows%20SDK%20Sample
[3] Пример приложение в которое реализует File Open и File Save Picker контракты: http://code.msdn.microsoft.com/File-picker-app-extension-0cb95155
[4] Пример приложения, реализующего контракт Play To: http://code.msdn.microsoft.com/Media-PlayTo-Sample-fedcb0f9
[5] Пример приложения, реализующего контракт поиска: http://code.msdn.microsoft.com/Search-app-contract-sample-118a92f5
[6] Пример приложения, с использованием интеграции настроек: http://code.msdn.microsoft.com/App-settings-sample-1f762f49
[7] Приложение, пример реализации целевого приложения для Share: http://code.msdn.microsoft.com/Sharing-Content-Target-App-e2689782
[8] Приложение, пример реализации источников данных для Share: http://code.msdn.microsoft.com/Sharing-Content-Source-App-d9bffd84
[9] Пример работы с данными аккаунта пользователя, включая его аватар: http://code.msdn.microsoft.com/windowsapps/Account-picture-name-sample-912baff1
[10] Пример работы с Removable Storage с реализацией поддержки AutoPlay: http://code.msdn.microsoft.com/Removable-Storage-52cc49f0
[11] Пример с основами работы с фоновыми задачами: http://code.msdn.microsoft.com/Background-Task-Sample-9209ade9
[12] Пример фоновой задачи, запускающейся при приходе SMS: http://code.msdn.microsoft.com/SMS-background-task-sample-513576cb
[13] Фоновая задача отразабывающая доступность сети: http://code.msdn.microsoft.com/Network-status-background-957eb3eb
[14] Фоновая задача, обрабатывающая Raw оповещения: http://code.msdn.microsoft.com/Raw-notifications-sample-3bc28c5d
[15] Пример приложения для камеры и реализующего расширение Camera Settings: http://code.msdn.microsoft.com/windowsapps/Metro-style-device-app-for-4f39b7bf
[16] Подробное руководство по разработке приложений, работающих с камерой: http://msdn.microsoft.com/library/windows/hardware/hh454870
[17] Пример приложения, реализующего расширение Contact Picker: http://code.msdn.microsoft.com/windowsapps/Contact-Picker-App-sample-fc6677a1
[18] Пример приложения реализующего расширения File и Protocol Activation: http://code.msdn.microsoft.com/windowsapps/Association-Launching-535d2cec
[19] Создание GDF файла: http://msdn.microsoft.com/library/windows/apps/hh465153.aspx
[20] Пример приложения с реализованным контрактом Print Task Settings: http://code.msdn.microsoft.com/windowsapps/Device-app-for-printers-91f363a9
[21] Подробное руководство по разработке приложений, работающих с принтером: http://msdn.microsoft.com/en-us/library/windows/hardware/br259129
[22] Windows 8: http://windows.microsoft.com/en-US/windows-8/download?ocid=W_MSC_W8R_DevCenter_MetroDL_EN-US
[23] бесплатные средства разработки: http://msdn.microsoft.com/en-us/windows/apps/hh852659
Нажмите здесь для печати.