如何分享連結 (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"));
}