Общий доступ к содержимому и его получение (HTML)
[ Эта статья адресована разработчикам приложений среды выполнения Windows для Windows 8.x и Windows Phone 8.x. При разработке приложений для Windows 10 см. раздел последняя документация]
Пользователям часто хочется поделиться интересной информацией или использовать ее в другом приложении. Общий доступ — это удобный контекстный компонент, который легко добавить в приложение.
Приложение, поддерживающее общий доступ, может делать это двумя способами. Во-первых, приложение может быть источником данных и предоставлять содержимое, которое пользователь хочет предоставить для общего доступа. Во-вторых, приложение может быть получателем данных, и пользователь может выбрать его как точку назначения для общего содержимого. Кроме того, одно и то же приложение может являться как источником, так и получателем данных. Если вы хотите, чтобы ваше приложение предоставляло общий доступ к содержимому в качестве источника данных, вам нужно решить, данные каких форматов сможет предоставлять это приложение. Мы советуем обеспечить поддержку как можно большего количества форматов данных, чтобы в конечном счете выбрать те, которые больше подходят вашему приложению. Приняв такое решение, упакуйте данные с помощью классов пространства имен Windows.ApplicationModel.DataTransfer.
Если вы хотите, чтобы приложение получало общее содержимое в качестве получателя данных, сначала настройте файл манифеста приложения, объявив в нем о поддержке контракта отправки данных.
Примечание
Пользователь может поделиться содержимым вашего приложения простым касанием чудо-кнопки "Поделиться". Пользователь может поделиться файлом или URL-адресом из вашего приложения с другим устройством, воспользовавшись командой Коснуться и отправить на чудо-кнопке "Устройства".
Примечание
Панель чудо-кнопок отсутствует в Windows Phone 8.1, поэтому разработчик должен добавить параметры общего доступа программным способом в составе панели приложения или другого элемента управления.
Контракт отправки данных позволяет предлагать ваше приложение как вариант, когда пользователь вызывает функцию общего доступа в сценариях, предоставляющих общий доступ к поддерживаемым форматам данных. При выборе форматов данных, поддерживаемых конечным приложением, регистрируйте только те форматы, которые будут обрабатываться в вашем приложении. Дополнительные рекомендации см. в разделе о выборе формата данных. Когда пользователь вызывает функцию общего доступа, отображаются только конечные приложения, которые поддерживают формат отправляемых данных.
Если вы используете программу Visual Studio, вы можете добавить в приложение контракт отправки данных, открыв меню Проект, щелкнув Добавить новый элемент и выбрав Контракт получателя данных из списка. Также вам нужно перечислить форматы данных и типы файлов, которые принимает приложение. Форматы следует указать на вкладке Объявления при редактировании файла package.appxmanifest в Visual Studio.
Дополнительную информацию о поддержке контракта отправки данных в файле манифеста приложения см. в кратком руководстве по получению общего содержимого и в разделе ShareTarget справочника по схеме манифеста пакета.
Чтобы узнать, как на практике обеспечивается общий доступ к содержимому, посмотрите Образец исходного приложения при общем доступе к содержимому и Образец конечного приложения при общем доступе к содержимому или прочтите разделы Краткое руководство: общий доступ к содержимому и Краткое руководство: получение общего содержимого.
Следующая схема содержит высокоуровневую иллюстрацию принципов действия общего доступа.
Примечание
Элементы QuickLink не поддерживаются в Windows Phone 8.1. Если конечное приложение возвращает элемент QuickLink, исходное приложение автоматически проигнорирует его.
Вы можете указать форму, которая открывается при вызове приложения с помощью контракта отправки данных. Таким образом можно создать настраиваемое взаимодействие специально для общего доступа. Дополнительные сведения об этом и других вопросах разработки см. в разделе Рекомендации и контрольный список для общего доступа к содержимому.
Примечание
Если вы реализуете приложение-получатель данных, подумайте об интерфейсе. Когда пользователь выбирает ваше приложение, Windows показывает его с помощью всплывающего элемента общего доступа. Этот режим является одним из нескольких способов отображения приложения на экране. Убедитесь, что ваше приложение имеет простой и понятный интерфейс для общего доступа к содержимому во всплывающем элементе общего доступа.
Содержимое, которое ваше приложение получает от исходного приложения, нельзя изменить. Но можно дать системе знать, что ваше приложение получило данные, и сообщить, когда их обработка будет завершена. Это важно — особенно для такого содержимого, как изображения, которые могут долго передаваться и обрабатываться. Как это происходит на практике, показано в примере конечного приложения при общем доступе к содержимому. Кроме того, дополнительные сведения об этом см. в кратком руководстве по получению общего содержимого.
Учтите, что хотя роли — источника и получателя данных — различны, их можно поддерживать в одном приложении. Например, приложение для совместного использования фотографий может быть как источником (чтобы пользователи могли отправлять свои фотографии по электронной почте), так и получателем данных (чтобы пользователи могли обновлять фотоальбомы, добавляя новые снимки).
Чтобы узнать, как реализовать общий доступ в своем приложении, см. следующие разделы и примеры приложений:
- Рекомендации и контрольный список для общего доступа к содержимому. Независимо от того, какое приложение вы создаете (исходное или конечное), в этом разделе предоставляются полезные сведения, которые могут помочь вам обеспечить наилучшее взаимодействие с пользователем при общем доступе к содержимому.
- Выбор форматов данных для общего доступа. В этом разделе описаны стандартные форматы для общего доступа к содержимому, а также способы создания и использования пользовательских форматов, если стандартные форматы не подходят.
- Общий доступ к содержимому. В этом разделе вы узнаете, как реализовать приложение-источник. Здесь также рассматриваются более специфические сценарии и дополнительные нюансы, которые вам следует учитывать при реализации.
- Получение общего содержимого. В этих разделах описано, как добавить контракт отправки данных к вашему приложению, как определить, выберет ли пользователь ваше приложение для общего доступа к содержимому, и как обрабатывать совместно используемые данные. Мы также обсудим несколько сценариев, которые помогут вам быстро освоиться в этой теме.
- Образец исходного приложения при общем доступе к содержимому. Этот образец показывает, как инициировать операцию предоставления общего доступа и упаковать содержимое для передачи.
- Образец конечного приложения при общем доступе к содержимому. Этот образец показывает, как обеспечить получение содержимого, передаваемого в общий доступ из другого приложения.
- Руководство по отладке конечных приложений. Узнайте о проблемах, связанных с отладкой приложения-получателя данных.