首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> 關於.NET

Windows 8 風格應用開發入門:分享合約架構與資料包機制

     編輯:關於.NET

分享合約實現應用間的輕量級內容分享,分為「分享來源」與「分享目標」兩種角色。核心傳輸單元是 DataPackage,支援文字、連結、HTML、圖片、檔案等多種格式。

分享合約概述

  • 系統級分享中介,無需應用間直接整合
  • 來源應用宣告可分享內容,目標應用宣告接收格式
  • 使用者透過 Charms 列「分享」啟動流程
  • 支援隱式分享(未選取內容)與顯式分享(已選取內容)

分享合約概述

資料包支援格式與方法

格式設定方法適用場景
純文字SetText()簡單文字分享
URISetUri()網頁連結分享
HTMLSetHtmlFormat()富文本內容分享
圖片SetBitmap()截圖、照片分享
RTFSetRtf()文件格式分享
自訂資料SetData()應用專用格式
檔案/資料夾SetStorageItems()檔案分享

程式碼範例:分享文字與圖片

private void OnDataRequested(DataTransferManager sender, 
    DataRequestedEventArgs args) {
    var request = args.Request;
    request.Data.Properties.Title = "分享標題";
    request.Data.Properties.Description = "分享描述";
    
    // 文字
    request.Data.SetText("要分享的文字內容");
    
    // 圖片
    var imageStream = await Package.Current.InstalledLocation
        .OpenStreamForReadAsync("Assets/share-image.png");
    request.Data.SetBitmap(RandomAccessStreamReference.CreateFromStream(imageStream.AsRandomAccessStream()));
    
    // 縮圖
    request.Data.Properties.Thumbnail = RandomAccessStreamReference.CreateFromUri(
        new Uri("ms-appx:///Assets/thumbnail.png"));
}

SetText 程式碼 文字分享效果 SetBitmap 程式碼 圖片分享效果

分享合約運作流程

分享合約運作流程

  1. 來源應用註冊 DataTransferManager,宣告 DataPackage
  2. 使用者開啟 Charms 選擇「分享」
  3. 系統觸發來源應用 DataRequested 事件填充資料包
  4. 來源應用完成異步呼叫返回
  5. 系統篩選支援格式的目標應用與快速連結
  6. 使用者選擇目標應用
  7. 系統啟動目標應用(非全螢幕)
  8. 目標應用處理資料包內容
  9. 目標應用通知完成,系統移除分享頁面

實現分享合約的意義

  1. 建立使用者與關心對象/應用的連結
  2. 接收其他應用分享內容豐富自身服務
  3. 支援分享的應用越多,分享機會越多

理解分享合約架構後,下一章將示範分享來源與目標的完整程式碼實作。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved