在上一篇《你不可不知的Mango — 開發人員篇(1)》中我已經給大家介紹了在Mango中新的Sensor API和多任務處理機制,今天我們接著聊聊Live Agents。
3。Live Agents
首先我們看看Local Live Tiles。Live Tiles是Windows Phone
7提出來的一個概念,使用者可以將多種內容固定在主介面上。例如程式的捷徑,音樂專輯,網頁等等。由於你可以通過Push
Notification機制來動態更改Tiles上的數字、背景圖片以及文字。所以稱之為Live
Tiles,也就是希望給使用者帶來一些“活”的感覺,而不止是簡單的捷徑。但是更新這個Tile相對比較麻煩,第一種方法就是使用Push
Notification,這樣你必須假設自己的Push
Notification伺服器來做處理。第二種方法是使用ShellTileSchedule
API,這個API噁心的地方在於更改的背景圖片只能是一個遠程URL上的圖片。而且,不管是通過哪種方法來更新了Tile之後,它始終只是停留在改變後
的那個介面(背景、數字、標題文字),其實並沒有多少動感。所以在Mango中又增加了新的ShellTile API來更好的處理Tile。
在新的機制下,每個程式的Tile其實由’Front’和’Back’(即前和後)兩部分構成。對於’Front’來說,其實就是以前的Tile,它具有BackgroundImage, Title和Count三個屬性:
而’Back’則是新加入的一個介面,不同於Front的地方它設定的屬性略有不同,即為BackBackgroundImage, BackTitle和BackContent。注意,也就是數字變成了文字:
如果你設定了Tile的Back部分,則系統會自動地動態切換Front和Back部分。否則,只會顯示預設的Front部分。Front和
Back其實是一個Tile的兩個不同視圖,所以在以前的Push Notification中如果要更新Tile,XML資料可以類似於如下格式:
string tileMessage = "<?xml version=\"1.0\" encoding=\"utf-8\"?>" +"<wp:Notification xmlns:wp=\"WPNotification\">" + "<wp:Tile>" + "<wp:BackgroundImage><front side of tile background image path></wp:BackgroundImage>" + "<wp:Count><front side of tile count></wp:Count>" + "<wp:Title><front side of tile title></wp:Title>" + "<wp:BackBackgroundImage><back side of tile image path></wp:BackBackgroundImage>"+ "<wp:BackTitle><back side of tile title></wp:BackTitle>"+ "<wp:BackContent><back side of tile text></wp:BackContent>"+ "</wp:Tile> " +"</wp:Notification>";
這樣就可以同時更新Front和Back了,你可以看到這個XML的格式其實和以前發送Push
Notification是相容的,只不過多了後面的3個Backxxxx屬性。首先,通過Front和Back可以讓你的Tile更加具有動感。其次,
想要更新Tile又多了一種方法,那就是通過ShellTile API。通過ShellTile
API你可以方便的更新Tile的屬性,而且重要的是背景圖片終於可以是本地的了。ShellTile
API不止具有更新Tile這麼簡單的功能。在Mango中,每個程式可以有多個Tile,這多出來的Tile就是使用ShellTile
API來建立的。而這些第二個、第三個Tile它們又可以指向程式中的任何一個XAML頁面,甚至指向的這些XAML頁面還可以帶上參數。類似於某個
Tile指向”/news.xaml?id=5”。這也就讓程式有能力在案頭上加上不同的Tile,然後每個Tile指向不同的位置。例如,某個新聞閱讀
軟體可以在案頭上有個主Tile,它就是之前的常規的那個Tile,用來開啟程式本身。而第二個Tile可以指向某個具體的新聞頁面。這個直接跳轉到某個
應用的某個具體頁面的技術就叫做Deep Linking。
Bing
Search在Mango中越來越有意思了。首先,在你搜尋某一個關鍵詞的時候,如果Marketplace中某個軟體和這個關鍵詞有關係,那麼這個軟體
會出現在結果清單的最上端。你可以選擇安裝這個軟體,或者如果你已經按安裝了的話則可以選擇運行這個軟體。例如你搜尋由WPMind代為提交的快遞檢索軟
件”PocketExpress”的話,列表中會直接出現這個軟體讓你安裝(當然,如果你已經安裝這裡提示的就是運行)。
而App Connect這個詞兒目前資料比較少,在Beta版的Mango SDK中並沒有被提及。但是它似乎就是之前MIX11中提及過的Bing Search Extras。在你搜尋電影、音樂或者其他幾種特定類型,結果頁面中會特定的卡片。例如搜尋”water for elephants“(這是部電影的名字),在搜尋結果頁面中首先會出現電影的播放時刻表:
點擊時刻表進入後則是該電影的一些詳細資料:
這時,如果你的手機上安裝過具有Search
Extras功能的應用的時候。例如IMDB(針對Mango的版本,經實測Marketplace中的版本還不行)會出現在這個電影卡片中的一
個”app”樞軸視圖頁面中。而你點擊這個列表中的應用(在這裡是IMDB)的時候,會直接跳轉到該應用的具體資訊頁面(根據傳入的參數)。
這就是App Connect功能,它完全將你的應用和Bing Search的結果結合了起來。通過增強Bing Search以及App
Connect功能,使得你的軟體和系統的互動性得到了更進一步的增強。不過可惜的是目前的Beta版Mango SDK中並沒找到相關的API介紹。
注意:本文內容來源自 MIX11部分課程內容以及Windows Phone Developer Tools 7.1 (Beta)的文檔加上本人的理解,所以可能會有所偏差。同時本文提及的Mango相關知識在Mango的正式版本上市之後或許會有所改變。
延伸閱讀:【MIX11】多圖揭秘Mango
本文首發:WPMind.com