- PVSM.RU - https://www.pvsm.ru -

Контракты и расширения Windows 8

Контракты и расширения Windows 8Если вы интересовались разработкой приложений в metro-стиле под Windows 8, вы, наверное, уже знаете, что жизненный цикл этих приложений ближе к жизненному циклу приложений на Windows Phone. Это означает, что приложение, фактически не исполняется, когда пользователь его не видит. Таким образом, возникает вопрос, как приложения могут взаимодействовать друг с другом и системой.

В Windows 8 для приложений в metro-стиле для взаимодействия приложений друг с другом используются контракты, а для взаимодействия с системой – расширения.

Разнообразных контрактов и расширений достаточно много. Написать пост про то, какие контракты и расширения доступны разработчику, меня натолкнула статья Windows 8. Контракт «поиск» в деталях [1], после которой я решил систематизировать свои знания и собрать в одном месте краткие, буквально в несколько строчек, «how to» по большинству контрактов и расширений, с примерами из Windows SDK Samples [2].

Итак, приступим. Начнём с контрактов.

Контракты:

  • App to App Picking – возможность одному приложению напрямую выбрать файлы, которые предоставляет другое приложение;

    Как реализовать 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]
     

  • Cached File Updater – возможность управлять кэширование удалённого контента локальным приложением, а также обновлением локально изменённого закэшированого контента на удалённый сервер;

    Как реализовать поддержку кеширование с обновлением:
    1) определить в манифесте;
    2) зарегистрироваться на событие FileUpdateRequested;
    3) обрабатывать запросы на обновление файлов;
    4) требует поддержки со стороны удалённого сервера.
     

  • Play To – реализация проигрывания контента вашего приложение на присоединённом DLNA-совместимом устройстве;

    Пример приложения, реализующего контракт Play To [4]
     

  • Search – возможность интегрироваться со стандартным интерфейсом поиска;

    Как реализовать контракт поиска:
    1) добавить элемент Search Contract в проект (Add Item);
    2) реализовать страницу результатов поиска.

    Пример приложения, реализующего контракт поиска [5]
    Windows 8. Контракт «поиск» в деталях [1]
     

  • Settings – возможность предоставить доступ пользователю к контекстно-зависимые настройкам в стандартном системном метро-представлении;

    Как реализовать контракт Settings:
    1) определить в манифесте;
    2) подписаться на событие CommandRequested объекта SettingsPaneView;
    3) зарегистрировать свои команды;
    3) реализовать обработчик(и) команд.

    Пример приложения, с использованием интеграции настроек [6]
     

  • Share – простой способ предоставить или получить контент вашего приложения другому приложению или сервису.
    Можно отдавать/получать: текст, URI, Bitmap, HTML, RTF и StorageItems

    Как сделать Share Target:
    1) добавить элемент «Share Target Contract» в проект (Add Item);
    2) добавить декларацию в манифест;
    3) реализовать UI получения

    Приложение, пример реализации целевого приложения для Share [7]

    Как сделать Share Source:
    1) зарегистрировать себя, вызвав DataTransferMnager;
    2) вызвать ShowShareUI;
    3) подготовить данные к передаче.

    Приложение, пример реализации источников данных для Share [8].

Перейдём к расширениям.

Расширения:

Если хотите попробовать реализовать какой-нибудь контракт или расширение прямо сейчас, то чтобы начать разрабатывать приложения под 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