在Windows Phone 7.1(Mango)中,將原本存在於7.0中的Photo Extension功能結合新的Searching Extension統稱為App Connect,透過App Connect,應用程式可整合至Windows Phone的Search及Photo功能內,以Photo來說,當使用者檢視圖片時可透過我們的應用程式進行圖片檢視或是上傳,在Search時,也可以透過我們應用程式對搜尋結果做進一步的動作、
Windows Phone 7.1 Overview – App Connect
文/黃忠成
App Connect
在Windows Phone 7.1(Mango)中,將原本存在於7.0中的Photo Extension功能結合新的Searching Extension統稱為App Connect,透過App Connect,應用程式可整合至Windows Phone的Search及Photo功能內,以Photo來說,當使用者檢視圖片時可透過我們的應用程式進行圖片檢視或是上傳,在Search時,也可以透過我們應用程式對搜尋結果做進一步的動作、
Photo Extension
應用程式可透過Photo Extension功能,將自己整合到Picture Hub中,Extension的點有兩個,一個是Viewer,用於當使用者檢視相片時,另一個是Share,用於當使用者檢視相片,然後按下分享按鍵時、
Extension的步驟很簡單,只要在應用程式的WMAppManifest.xml中加上對應的設定即可。
Viewer Extension |
<Extensions> <Extension ExtensionName="Photos_Extra_Viewer"ConsumerID="{5B04B775-356B-4AA0-AAF8-6491FFEA5632}"TaskID="_default"/> </Extensions> |
Share Extension |
<Extensions> <Extension ExtensionName="Photos_Extra_Share"ConsumerID="{5B04B775-356B-4AA0-AAF8-6491FFEA5632}"TaskID="_default"/> </Extensions> |
注意,ExtensionName屬性的值是固定的。
當應用程式以Viewer註冊時,使用者便可於檢視相片時點選應用程式來選擇想要使用的的應用程式來檢視相片。
圖1
圖2
此時,Picture Hub會啟動選擇的應用程式,並將選取的相片以QueryString方式傳入,QueryString的內容如下、
圖3
拿到這個token後,便可透過MediaLibrary來取得相片、
protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e) { IDictionary<string, string> queryStrings = this.NavigationContext.QueryString; if (queryStrings.ContainsKey("token")) {
MediaLibrary library = new MediaLibrary(); Picture picture = library.GetPictureFromToken(queryStrings["token"]);
BitmapImage bitmap = new BitmapImage(); bitmap.CreateOptions = BitmapCreateOptions.None; bitmap.SetSource(picture.GetImage());
WriteableBitmap picLibraryImage = new WriteableBitmap(bitmap); image1.Source = picLibraryImage; } } |
Viewer可用於提供相片特效的用途,例如Cartoon或是lomo風、
Share Extension的執行過程與View Extension大致相同,使用者可於檢視相片時點選分享,此時便可選取對應的應用程式
圖4
圖5
此時除了QueryString外,還會傳入另一個Action參數、
圖6
不管是Viewer還是Share,其後續處理都是一樣的,提醒讀者,模擬器上不支援Picture Hub,所以測試這類程式得用實機才行。