如何分享連結 (HTML)

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

連結或統一資源識別元 (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 之外的其他資訊。這有助於確保目標應用程式可以為所有使用者提供更好的使用經驗,包含使用不同作業系統的 (OS) 的使用者。

  • 為內容提供清楚的標題和描述。
  • 包含一個 HTML 程式碼片段,說明要分享的內容,並包含內嵌 URI。建議您包含一個說明連結適用於 Windows 8 使用者的字串,而且如果可以的話,請為使用不同作業系統 (OS) 的使用者提供其他網路連結。
  • 包含 HTML 程式碼片段的文字版本。

有些目標應用程式即使只能處理 http:// 或 https:// URI,還是會登錄為支援 URI。提供其他資料格式可讓目標應用程式更有可能成功地處理您的情況。

完整範例

這裡是一個函式範例,它為使用者設定要分享的連結。 如需更完整的範例,請參閱我們的程式碼庫範例

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