Windows Mobile 6.5 Widgets開發初體驗
本文和大家重點學習一下WindowsMobile6.5Widgets開發的概念,Widgets開發是近來非常流行的一項技術,用于顯示一些常用信息,比如天氣、股票、新聞和體育等。googleAndroid和Symbian上已經有了類似的技術,可以說,Widgets開發是很好地結合了移動設備與互聯網的技術。
WindowsMobile6.5Widgets開發初體驗
Windowsmobile6.5的DTK終于發布了,其中最吸引人的是兩個功能:Widgets和GestureAPI。Widgets開發是近來非常流行的一項技術,用于顯示一些常用信息,比如天氣、股票、新聞和體育等。googleAndroid和Symbian上已經有了類似的技術,可以說,Widgets開發是很好地結合了移動設備與互聯網的技術。雖然Widgets開發簡單,但很有可能改變移動互聯網的未來格局。目前WindowsMobile6.5的Widgets是基于W3C的Widgets草案,支持2008年12月22日草案,鏈接在http://www.w3.org/TR/2008/WD-widgets-20081222/。
WindowsMobile6.5Widgets開發環境
好了,接下來,我們就要看一下,如何為WindowsMobile6.5開發一個Widgets控件。首先,我們需要下載WindowsMobile6.5的DTK,下載鏈接為:
http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=20686a1d-97a8-4f80-bc6a-ae010e085a6e
WindowsMobile6.5的DTK需要與WindowsMobile6SDK配合使用,WindowsMobile6SDK的下載地址:
http://www.microsoft.com/downloads/details.aspx?familyid=06111a3a-a651-4745-88ef-3d48091a390b&displaylang=en
由于很多Widgets都需要聯網,所以測試環境也需要ActiveSync的支持。Vista應該使用WindowsMobileDeviceCenter6.1,下載地址:
http://www.microsoft.com/windowsmobile/en-us/help/synchronize/device-center-download.mspx
編寫Widgets
接下來,我們就可以來開發一個Widgets了。首先創建一個WidgetDemo的文件夾,創建一個叫做widget.htm的文件,將下面的HTML代碼拷貝到文件中:
- <html><head><title>CoolWidget!title>head><body>I'macoolwindowsmobile6.5widget<formmethodformmethod="get"action="http://www.google.cn/custom"target="google_window">
- <tablebgcolortablebgcolor="#ffffff"><tr><tdnowraptdnowrap="nowrap"valign="top"align="left"height="32"><ahrefahref="http://www.google.com/">
- <imgsrcimgsrc="http://www.google.com/logos/Logo_25wht.gif"border="0"alt="Google"align="middle">
- img>a><labelforlabelfor="sbi"style="display:none">????????label>tr><tr><inputtypeinputtype="text"name="q"size="31"maxlength="150"value=""id="sbi">
- input><labelforlabelfor="sbb"style="display:none">??????label><inputtypeinputtype="submit"name="sa"value="??"id="sbb">
- input><inputtypeinputtype="hidden"name="client"value="pub-9289651901062754">input><inputtypeinputtype="hidden"name="forid"value="1">
- input><inputtypeinputtype="hidden"name="ie"value="UTF-8">input><inputtypeinputtype="hidden"name="oe"value="UTF-8">input><inputtypeinputtype="hidden"name="cof"value="GALT:#008000;GL:1;DIV:#336699;VLC:663399;
- AH:center;BGC:FFFFFF;LBGC:336699;ALC:0000FF;LC:0000FF;T:000000;GFNT:0000FF;GIMP:0000FF;FORID:1">
這個Widget就是調用Google的搜索頁面。原來的WidgetDemo沒有Google搜索的代碼,我從網上找了一個示例加了進去。接下來,創建一個叫做config.xml的文件,將下列代碼拷貝到文件中:
- xmlversion="1.0"encoding="utf-8"?><widgetversionwidgetversion="1.0"xmlns="http://www.w3.org/ns/widgets"id=""><name>Myfirstwidgetname>
- <contentsrccontentsrc="widget.htm"type="text/html"/><accessnetworkaccessnetwork="true"/><iconsrciconsrc="icon.png"/>
- <description>Thisismyfirstwidget,itwon'tmakealotofmoneyonthemarketplacebutatleastiscute!description>widget>
這是一個描述性的XML文件,結構非常清晰,不需要多做解釋了。注意content,icon和accessnetwork三個節點。Content的src就是我們剛編寫的widget.htm,允許Widget訪問網絡,icon則是顯示在WindowsMobile開始菜單里的圖標。
現在有了三個文件,我們使用WinZip將其壓縮成一個ZIP文件。特別需要指出的是,我們不能壓縮這三個文件所在的文件夾,必須選中所有文件之后進行壓縮。然后我們將WidgetDemo.zip的擴展名改為WidgetDemo.wgt。
部署Widget
到這里,Widget開發就完成了。通過ActiveSync或者共享目錄,將Widget拷貝到WindowsMobile6.5的模擬器中。
我們使用FileExplorer來找到這個Widget文件,點擊之后,會提示是否安裝并運行這個Widget。
安裝Widget開發系統之后,會自動運行,Google的圖標來源于網絡,所以可能會顯示慢一些。如果Google圖標沒有顯示出來,則說明網絡連接不通:
輸入關鍵字,點擊button,Widget開發系統會自動啟動IEMobile,顯示搜索結果。
在使用時,我們可以在開始菜單里找到相應的圖標,可以打開Widget。還需要說明的是,如何卸載這個Widget。
在開始菜單-Setting–System-RemovePrograms里,可以看到我們的Widget,與卸載普通的應用程序沒有區別。
我們的Widget被安裝在\ProgramFiles\Widgets\User\7的目錄里,目錄的序號與安裝順序有關,比如1里就是內置的LiveSearch。
總結
寫到這里,Widget開發就完成了,怎么樣?簡單吧。Widget開發的簡單性,正是它未來可能締造輝煌的主要優勢。任何熟悉HTML和JavaScript的人都可以開發出功能豐富的Widget,而Widget又可以像普通應用程序一樣使用。
雖然不像Palm的WebOS那樣具有顛覆性,但是依托于目前的技術,才能獲得大多數開發者的支持。現在只有WindowsMobile6.5支持Widget,但其他移動設備是否有可能支持Widget呢?一切皆有可能。
總之,一句話,大有可為!其實HTML和JavaScript并不是我的強項,下周還是給大家說說GestureAPI吧。
參考資料
GettingstartedwithwidgetsonWindowsMobile6.5
http://blogs.msdn.com/windowsmobile/archive/2009/06/04/getting-started-with-widgets-on-windows-mobile-6-5.aspx
DevelopingWidgetsforWindowsMobile6.5
http://msdn.microsoft.com/en-us/library/dd721906.aspx
WindowsMobile6.5Widget系列文章
http://www.shangducms.com/post/Windows-Mobile-Widget.aspx
【編輯推薦】
- AndroidWidget開發系列解讀
- AndroidWidget開發詳解
- 全面認識WebWidget開發
- DashBoard的Widget開發指南
- 解析AndroidWidget開發中如何構建Activity類