Как создать быструю ссылку (HTML)

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

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

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

QuickLink не хранит каких-либо данных. Он содержит только идентификатор, который, будучи выбранным, отправляется вашему приложению. Чтобы объекты QuickLink работали, ваше приложение должно где-то сохранять данные и связанный с ними идентификатор — например, в облаке или на компьютере пользователя. Это можно сделать множеством способов; один из способов сохранения данных см. в разделе Управление данными приложения.

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

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

Технологии

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

Инструкции

Объект QuickLink принадлежит к классу ShareOperation.

var quickLink = new Windows.ApplicationModel.DataTransfer.ShareTarget.QuickLink();

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

quickLink.id = "123456789";

Затем укажите заголовок для QuickLink. Заголовок помогает пользователю идентифицировать QuickLink и его назначение.

quickLink.title = document.getElementById("quickLinkTitle").value;

// For quicklinks, the supported FileTypes and DataFormats are set 
// independently from the manifest.
var dataFormats = Windows.ApplicationModel.DataTransfer.StandardDataFormats;
quickLink.supportedFileTypes.replaceAll(["*"]);
quickLink.supportedDataFormats.replaceAll([dataFormats.text, dataFormats.uri, 
    dataFormats.bitmap, dataFormats.storageItems, dataFormats.html, customFormatName]);

Windows.ApplicationModel.Package.current.installedLocation.getFileAsync("images\\user.png").then(function (iconFile) {
    quickLink.thumbnail = Windows.Storage.Streams.RandomAccessStreamReference.createFromFile(iconFile);
});

Этап 4: Определение поддерживаемых типов файлов

Далее вам требуется указать типы файлов и форматы данных, которые поддерживает QuickLink. Система показывает QuickLink, только когда DataPackage, к которому предоставлен общий доступ из приложения-источника данных, содержит один из этих типов файлов или форматов данных.

var dataFormats = Windows.ApplicationModel.DataTransfer.StandardDataFormats;
quickLink.supportedFileTypes.replaceAll(["*"]);
quickLink.supportedDataFormats.replaceAll([dataFormats.text, dataFormats.uri, 
    dataFormats.bitmap, dataFormats.storageItems, dataFormats.html, customFormatName]);

Мы рекомендуем использовать тот же значок, который пользователи увидели бы, если бы выбрали ваше приложение без QuickLink. Таким образом, пользователь будет знать, что эта ссылка связана с вашим приложением.

Windows.ApplicationModel.Package.current.installedLocation.getFileAsync("images\\user.png").then(function (iconFile) {
    quickLink.thumbnail = Windows.Storage.Streams.RandomAccessStreamReference.createFromFile(iconFile);
});

Завершив создание объекта QuickLink, вы можете отправить его в систему, вызвав метод ShareOperation.reportCompleted.

shareOperation.reportCompleted(quickLink);

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

Следующая функция создает и возвращает объект QuickLink. Вызовите эту функцию вместо того, чтобы вызывать непосредственно метод ShareOperation.reportCompleted, когда ваше приложение завершит операцию общего доступа.

function reportCompleted() {
    var quickLink = new Windows.ApplicationModel.DataTransfer.ShareTarget.QuickLink();
    quickLink.id = "123456789";
    quickLink.title = document.getElementById("quickLinkTitle").value;
    
    // For quicklinks, the supported FileTypes and DataFormats are set 
    // independently from the manifest.
    var dataFormats = Windows.ApplicationModel.DataTransfer.StandardDataFormats;
    quickLink.supportedFileTypes.replaceAll(["*"]);
    quickLink.supportedDataFormats.replaceAll([dataFormats.text, dataFormats.uri, 
        dataFormats.bitmap, dataFormats.storageItems, dataFormats.html, customFormatName]);

    Windows.ApplicationModel.Package.current.installedLocation.getFileAsync("images\\user.png").then(function (iconFile) {
        quickLink.thumbnail = Windows.Storage.Streams.RandomAccessStreamReference.createFromFile(iconFile);
        shareOperation.reportCompleted(quickLink);
    });
}

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

Образец конечного приложения с общим доступом к содержимому

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

Краткое руководство: получение общего содержимого

QuickLink

ShareOperation

Windows.ApplicationModel.DataTransfer

Windows.ApplicationModel.DataTransfer.Share

Руководство по отладке целевых приложений