顯示具有 Windows Mobile 標籤的文章。 顯示所有文章
顯示具有 Windows Mobile 標籤的文章。 顯示所有文章

2009年8月31日

開發windows mobile 6.5 widget程式

前陣子坎尼去了幾場 windows mobile 的研討會
老師有提到開發 widget 的技巧
所以今天稍微來談一下 window mobile 6.5 上的 widget 開發

I. 戰前準備

首先要有 windows mobile 6.5 的執行環境,可以到 這裡下載 DTK
裡面有含模擬器的映像檔,待會兒會用模擬器來執行程式

接著是開發環境
windows mobile 6.5 的 widget 全為 html 組成
因此只要有能寫 html 的編輯器即可

II. 開發

由於很多人都寫過相關的開發方式
坎尼就直接引用 bauann 大所寫的 Widgets in Windows Mobile 6.5 - 簡介
大家可以直接看這篇,比坎尼寫的詳細多了 :D

剛剛提到 widget 由 html 構成
坎尼用 visual studio 開了個 html 檔,並加入下圖所示的網頁元素

"Show Messages" 按鈕會在 DIV 之中顯示使用者填入的字串
"Moving" 則是移動下方的灰色 div 到亂數位置

接著是此次的 javascript code
從下圖可得知,坎尼加入了 jquery 來開發

移動 div 的部份,坎尼用 jquery 的 animate 和 fadeOut 去展現動態效果

III. 安裝部署

接著是建立 config.xml 檔,讓 widget 安裝檔能被 windows mobile 6.5 辨別

接著把 html、jquery-1.3.2.min.js、Config.xml 還有要作為 logo 的 e04.png
利用壓縮程式壓成 zip 檔案,接著把副檔名改為 .wgt
這樣一來, widget 的安裝檔就完成了,趕快放到模擬器上試試看吧

直接在 windows mobile 6.5 中點選 wgt 檔即可安裝


安裝好會自動開啟程式,來測試一下成果

應該是硬體受限的緣故
原本寫好的 html 在 pc 上會有動態淡出淡入的效果
但到了 windows mobile 上,效果就不見了

IV. 解除安裝

這裡提一下如何解除安裝
請依照下圖步驟:Start -> Settings -> System -> Remove Programs
再選擇要解除安裝的 widget 程式即可

V. 小結

雖然 widget 提供 html 的開發方式
但很多動態的表現不如 pc 上來的順暢
所以最好著重在功能性的開發

由於為 html,動態資料交換就必須利用 Ajax 及 WebService 等技術
但若能用 jquery 從中當作媒介,相信會簡單許多
(也不用像研討會王老師講的,寫AJAX寫到快哭了 XD

本篇粗淺的介紹一下 windows mobile 的 widget
有錯還望高手們來指正 :)

2009年8月7日

讓人不知所措的 OpenFileDialog.InitialDirectory in PPC 開發

在 .NET Compact Framework 環境下,很多方法都受到限制
本篇要講的 OpenFileDialog.InitialDirectory 正是一例

Ⅰ. OpenFileDialog.InitialDirectory in PPC

在 Windows Form 裡使用 OpenDialogFile 要指定初始目錄
多半會用 Environment.GetFolderPath 方法來取得特定資料夾
再配上相對路徑達到初始化目錄的效果 (如下圖

但 InitialDirectory 這個屬性到了 PPC 開發上,就整個被閹割了
OpenFileDialog 只能指定 My Document SD 卡 底下的第一層目錄
是的,就只能指定第一層,否則系統會自動跑回預設根目錄

所以 InitialDirectory 屬性的設定如下圖


圖中的 MyNewFolderUnderMyDocument
即是指 \\My Documents\\MyNewFolderUnderMyDocument
\\Storage Card\\MyNewFolderUnderMyDocument

而且很神奇的 (應該說是愚笨?)
兩邊都有此目錄,OpenFileDialog 便會列出兩個目錄下的所有檔案
(因為不曉得要指定的是哪個資料夾,所以全列出?)

Ⅱ.解決方法

坎尼問了谷歌大神,他說這個問題也是困擾了很多人
可能的解決方式有
  • 繼承 FileDialog 再寫個 OpenFileDialog Class
  • 自己寫個 Form 取代原本的 Class (山寨版)
坎尼是選擇後者,利用了 System.IO 去抓取 Directory 及 File 資訊
但目前只做出雛型,效能上還令人不甚滿意 (下面是部分執行畫面

自己做的檔案開啟 Form


比較一下原本的 OpenFileDialog.ShowDialog
UI上有稍做調整


下拉選單直接將列出目錄路徑


所有資料夾皆會列出

Ⅲ.小結

自行開發的 OpenFileDialogForm 也實作了下列三個屬性
(坎尼平常也只會用到這三個屬性,其他屬性要等真正需要時再去實作)
  1. InitialDirectory
  2. Filter
  3. SelectedPath
接下來的任務就是調整效能啦,在 PPC 上的開發首重就是執行效率
除非是很值得讓使用者等待的資訊,不然一般人大多不會等下去
這是開發 PPC 及 Windows Mobile 系統時要時時注意的一件事

Google Spreadsheet 裡用規則運算式

最近因為工作關係,遇到要用 Google Form 及 Google Sheet 所以研究了 Google Sheet 裡的一些 function 怎麼用 首先,分享一下如何在 Google Sheet 裡用規則運算 :D