Общий доступ к данным и обмен данными (HTML)

[ Эта статья адресована разработчикам приложений среды выполнения Windows для Windows 8.x и Windows Phone 8.x. При разработке приложений для Windows 10 см. раздел последняя документация]

Здесь описаны различные способы, с помощью которых приложения могут совместно использовать данные и обмениваться ими.

Современные пользователи хотят применять новейшие технологии для связи и обмена данными с другими людьми. Чего бы ни хотел пользователь — поделиться ссылкой в социальной сети, скопировать иллюстрацию в отчет или отправить файл в облачное хранилище — приложения сегодня должны гарантировать, что используемые ими данные также будут доступны для общего доступа и обмена.

Обмен данными между приложениями поддерживается несколькими способами. Один из них — контракт отправки данных. Это новый способ, и для его эффективного использования потребуются некоторые пояснения. Другой способ, буфер обмена, знаком большинству разработчиков (вне зависимости от того, на какой платформе они пишут код). Чтобы работать с буфером обмена, вам нужно не только обрабатывать его содержимое, как это было раньше, но и учитывать пользовательский интерфейс для копирования и вставки. Это особенно важно, если приложение использует касание как основной способ ввода данных. Еще одним способом является сохранение, которое также широко известно, но до этого момента использовалось иначе.

Для совместного пользования и обмена данными некоторую информацию объединяют различными способами, чтобы определить, какие параметры наиболее значимы для приложения и пользователей. Действие этих параметров можно увидеть, если перейти в нашу коллекцию кода и выделить следующие примеры:

Если вы уже решили, какой метод будете использовать, изучите краткие руководства по началу работы:

Чудо-кнопка "Поделиться"

Контракт отправки данных — это один из способов совершать быстрый обмен данными между приложениями. Например, пользователь может поделиться ссылкой на веб-страницу со своими друзьями в приложении социальной сети или сохранить ее в приложении для заметок, чтобы вернуться к ней позднее. Попробуйте использовать контракт отправки данных, если ваше приложение получает содержимое в сценариях, которые пользователь может быстро реализовать, не выходя из другого приложения. Возможно, наиболее распространенным содержимым в одном из этих сценариев будут веб-страницы или фотографии.

Примечание  

Пользователь всегда может воспользоваться чудо-кнопкой Share charm, которая предоставляет быстрый и удобный доступ ко всем приложениям, которые могут получать общий доступ к содержимому.

Примечание  

Charms bar отсутствует в Windows Phone 8.1, поэтому вы должны добавить параметр Коснуться и отправить программным способом. Он может быть всегда доступен на панели приложения или может быть связан с определенным элементом управления на конкретной странице.

В контракте отправки данных участвуют две стороны: источник, передающий данные, и получатель, принимающий их. Дополнительные сведения о предоставлении общего доступа в приложении читайте в разделе о реализации общего доступа. Из него вы узнаете больше о том, как действует общий доступ и как приступить к работе с ним. Изучите также два полных примера кода: Пример sharing content source app и Пример sharing content target app.

Дополнительные сведения об участии в контракте отправки данных см. в разделе Получение общего содержимого.

Коснуться и отправить

Другая функция общего доступа называется Коснуться и отправить. Функция Коснуться и отправить автоматически включена в приложениях, выступающих источниками данных. Она использует технологию NFC для обмена данными между пользователями приложения. В частности, функция Коснуться и отправить идеально подходит для обмена ссылками и файлами с находящимся поблизости другом. Функция Коснуться и отправить доступна только на устройствах, поддерживающих технологию NFC и близкого взаимодействия.

Примечание  

Параметр Коснуться и отправить автоматически отображается в чудо-кнопке "Устройства", когда в приложении есть содержимое для общего доступа и пользователь может вызвать эту возможность простым жестом или щелчком мыши.

Примечание  

Charms bar отсутствует в Windows Phone 8.1, поэтому вы должны добавить параметр Коснуться и отправить программным способом. Он может быть всегда доступен на панели приложения или может быть связан с определенным элементом управления на конкретной странице.

Дополнительные сведения о бесконтактном и контактном взаимодействии.

Функции копирования и вставки

Функция копирования и вставки — классический способ обмена данными между приложениями или внутри одного приложения. Практически любое приложение в той или иной степени поддерживает операции копирования и вставки, и пользователи привыкли, что этот набор действий будет доступен при работе в сети. Изначально копирование и вставка кажутся очень похожими на предоставление общего доступа, поэтому возникает желание ограничиться реализацией только одного из этих сценариев. Тем не менее опытные разработчики понимают, что это две разные функции и что они нужны в разных ситуациях.

Примечание  

У буфера обмена в сравнении с общим доступом есть преимущество: это единственный способ, позволяющий переносить данные из приложений Магазина Windows в классические приложения и наоборот. Также следует продумать доступ пользователя к командам копирования и вставки. При использовании мыши и клавиатуры, возможно, будет достаточно использовать классические сочетания клавиш. Однако на планшетном компьютере эти сочетания клавиш недоступны. Вместо них для отображения команд копирования и вставки мы рекомендуем использовать панель приложения, контекстное меню или другой элемент управления. Подробнее см. в статье Руководство и контрольный список для команд буфера обмена или в полном примере clipboard app code.

Получение файлов путем сохранения

Еще один способ обмена данными между двумя приложениями — разрешить другим приложениям сохранять файлы в вашем приложении. Например, вы работаете над техническим предложением в Microsoft Word и хотите сделать его доступным для ваших коллег. При сохранении файла вы можете выбрать Microsoft OneDrive в качестве места сохранения. Вам не нужно отслеживать файл, поскольку, сохранив его в OneDrive, вы проинформировали службу о том, что она должна отслеживать файл для вас.

Приложение должно участвовать в контракте выбора файлов в окне сохранения, чтобы получать файлы, которые в нем сохраняются. Приложения, участвующие в контракте, размещаются в средстве выбора файлов, которое доступно из приложений, обеспечивающих точку входа для сохранения файлов. Попробуйте реализовать участие в контракте выбора файлов в окне сохранения, если планируется, что пользователи будут сохранять в нем файлы и часто указывать имя файла, его тип и расположение. Если вы уже участвуете в контракте выбора файлов в окне открытия, то участие в контракте выбора файлов в окне сохранения является естественным расширением возможностей, которых ждут от вас пользователи. Дополнительные сведения об участии в контракте выбора файлов в окне сохранения см. в разделе Краткое руководство: доступ к файлам с помощью средства выбора файлов и в полном примере кода.

Какие возможности общего доступа к данным и обмена данными следует поддерживать?

Разрешать другим приложениям использовать ваше приложение как место сохранения файлов имеет смысл тогда, когда пользователь работает с файлами и папками. Если речь идет о небольших наборах данных, например URL-адресе или выделенном тексте, этот способ менее удобен. В таких случаях лучше выбрать контракт отправки данных или команды копирования и вставки. С другой стороны, существует множество ситуаций, в которых разумно обеспечивать поддержку как чудо-кнопки "Поделиться", так и сохранения данных. Предположим, что пользователь хочет хранить файл с помощью службы облачного хранения, такой как OneDrive. В этой ситуации контракт отправки данных и сохранение — одинаково приемлемые варианты. И наконец, вам следует учитывать то, как пользователь взаимодействует с приложением, а также поддерживать контракты и возможности, которые соответствуют ожиданиям пользователя и в итоге обеспечивают наилучшее взаимодействие.