Как предоставить общий доступ к ссылке (HTML)

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

Ссылки, или универсальные коды ресурсов (URI), — это еще один распространенный формат данных, к которым пользователи хотят предоставить общий доступ. Самая распространенная причина для предоставления общего доступа к ссылке — выбор ее пользователем. Кроме того, ваше приложение должно поддерживать общий доступ к ссылкам:

  • Когда выбранное пользователем содержимое также доступно в интернете.
  • В качестве вспомогательного ресурса при предоставлении общего доступа к HTML.

Что необходимо знать

Технологии

Необходимые условия

  • Вам должна быть знакома среда Visual Studio и связанные с ней шаблоны.
  • Вам необходимо знать JavaScript.

Инструкции

Этап 1: Получение объекта DataTransferManager

Объект DataTransferManager — это начальная точка любой операции общего доступа.

var dataTransferManager = Windows.ApplicationModel.DataTransfer.DataTransferManager.getForCurrentView();
    dataTransferManager.addEventListener("datarequested", shareAsyncHandler);

Этап 2: Добавление обработчика событий для события datarequested

Добавьте обработчик событий DataRequested, который будет запускаться, когда пользователь хочет вызвать функцию общего доступа. В приложении Магазина Windows это выполняется автоматически, когда пользователь нажимает чудо-кнопку "Поделиться". При разработке для Windows Phone нет встроенной чудо-кнопки "Поделиться", поэтому вам понадобится добавить элемент управления, которого пользователь может коснуться, чтобы запустить обработчик.

dataTransferManager.addEventListener("datarequested", function (e) {
    // Code to handle event goes here.
});

Этап 3: Получение объекта DataRequest

Когда происходит событие datarequested, ваше приложение получает объект DataRequest. Этот объект содержит DataPackage, который вы можете использовать для предоставления содержимого, которым желает поделиться пользователь.

var request = e.request;

Этап 4: Добавление ссылки в экземпляр DataPackage

Чтобы добавить ссылку, используйте метод setUri.

request.data.setUri(new Windows.Foundation.Uri("http://www.fabrikam.com"));

Замечания

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

  • Подберите подходящее название и дайте описание содержимого.
  • Добавьте фрагмент кода HTML с описанием совместно используемого содержимого и встроенным URI. Рекомендуется добавить строку, делающую акцент на то, что ссылка работает для пользователей Windows 8, и, по возможности, предоставить дополнительную веб-ссылку для пользователей других операционных систем.
  • Добавьте текстовую версию фрагмента кода HTML.

Некоторые получатели данных могут регистрироваться для поддержки URI, даже если на самом деле они обрабатывают только универсальные коды ресурсов http:// или https://. При предоставлении других форматов данных возрастает вероятность того, что конечное приложение успешно завершит сценарий.

Полный пример

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

function registerForShare() {
    var dataTransferManager = Windows.ApplicationModel.DataTransfer.DataTransferManager.getForCurrentView();
    dataTransferManager.addEventListener("datarequested", shareLinkHandler);
}

function shareLinkHandler(e) {
        var request = e.request;
        request.data.properties.title = "Share Link Example";
        request.data.properties.description = "A demonstration that shows how to add a link (URI) to share.";
        request.data.setUri(new Windows.Foundation.Uri("http://www.fabrikam.com"));
}

Связанные разделы

Пример исходного приложения при общем доступе к содержимому

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

Как предоставить общий доступ к файлам

Как предоставить общий доступ к HTML

Как предоставить общий доступ к тексту

Краткое руководство: общий доступ к содержимому

DataPackage

Windows.ApplicationModel.DataTransfer

Windows.ApplicationModel.DataTransfer.Share