共用方式為


如何建立 QuickLink (HTML)

[ 本文的目標對象是撰寫 Windows 執行階段 App 的 Windows 8.x 和 Windows Phone 8.x 開發人員。如果您正在開發適用於 Windows 10 的 App,請參閱 最新文件 ]

使用者希望延伸他們的電腦使用經驗,以便與自己的親友分享內容。接納這個概念的應用程式所建立的環境,可讓使用者輕鬆快速地分享內容。透過支援共用目標合約,您可以使用名為 QuickLink 的自訂捷徑讓分享經驗變得更輕鬆。QuickLink 會在應用程式以連結的方式顯示,這是針對一組特定的使用者動作自訂的功能。

使用者在分享內容時,通常希望能夠選擇如何分享他們的內容以及要分享的對象。最常見的範例就是透過電子郵件分享。如果使用者想要透過電子郵件分享內容,他們必須提供想要與其分享內容的收件者電子郵件地址。即使使用者不介意在第一次分享時手動提供這些電子郵件地址,但是如果必須在後續分享工作階段中再次手動新增它們就會變得很煩人。若要獲得更好的電子郵件應用程式使用經驗,就要建立 QuickLink,以便讓使用者可以在下次選擇套用上次所作的選擇。

QuickLink 無法實際儲存任何資料。它含有一個識別碼,會在選取時傳送到您的應用程式。若要讓 QuickLink 正常運作,您的應用程式需要將資料連同關聯的識別碼儲存到某個地方,例如雲端或使用者的電腦上。執行這個動作有很多方法;如需儲存資料的其中一種方式,請參閱管理應用程式資料

如需支援共用目標合約的詳細資訊,請參閱快速入門:接收分享的內容。這個主題描述使用者選取您的應用程式分享內容時,需要遵循的基本步驟。

您必須知道的事

技術

先決條件

  • 您應該熟悉 Microsoft Visual Studio 以及相關範本。
  • 您應該熟悉 JavaScript。
  • 您應該要知道如何接收分享的內容,如快速入門:接收分享的內容中所述。

指示

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 支援的檔案類型和資料格式。只有當從分享來源應用程式分享的 DataPackage 包含這些檔案類型或資料格式的其中一個時,系統才會顯示 QuickLink

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

對目標應用程式偵錯的指導方針