WML 配置器 (Adapter) 集是由類別所組成,這些類別可用來在支援 WML 1.1 或 WML 1.2 版的用戶端上,呈現 ASP.NET Mobile Web Form 網頁。這份文件可能沒有包含某些方法和屬性。若要檢視原始程式碼,請參閱裝置配置器程式碼。
下表列出 WML 配置器集所包含的核心類別。
| 配置器集 | 核心配置器類別命名空間 |
|---|---|
| ControlAdapter 基底類別 | System.Web.UI.MobileControls.Adapters.WmlControlAdapter |
| FormAdapter 類別 | System.Web.UI.MobileControls.Adapters.WmlFormAdapter |
| PageAdapter 類別 | System.Web.UI.MobileControls.Adapters.WmlPageAdapter |
| TextWriter 類別 | System.Web.UI.MobileControls.Adapters.WmlMobileTextWriter |
Openwave Up.Browser 瀏覽器使用不同的頁面配置器和文字寫入器。支援這些瀏覽器的配置器集使用下表中列出的核心類別。
| 配置器集 | 核心配置器類別命名空間 |
|---|---|
| ControlAdapter 基底類別 | System.Web.UI.MobileControls.Adapters.WmlControlAdapter |
| FormAdapter 類別 | System.Web.UI.MobileControls.Adapters. WmlFormAdapter |
| PageAdapter 類別 | System.Web.UI.MobileControls.Adapters.UpWmlPageAdapter |
| TextWriter 類別 | System.Web.UI.MobileControls.Adapters.UpWmlMobileTextWriter |
選取範圍
如果 MobileCapabilities 類別的 PreferredRenderingType 屬性傳回 wml11 或 wml12,則 WML 配置器集會被選取。
調整呈現
WML 配置器集可以根據 WML 架構式行動電話的各種功能,進行明顯的調整。因此,配置器集實際上會為每個表單及其子控制項呼叫兩次 Render 方法。第一次傳遞時,寫入器處於分析模式,並使用所有對它進行的呼叫來分析表單輸出。第二次傳遞時,才會真的呈現表單。
請避免建立會區分兩次傳遞的配置器。如果真有必要,您可以藉由檢查 WmlMobileTextWriter 類別的 AnalyzeMode 屬性,撰寫能夠存取目前模式的配置器。
預設呈現
下列步驟顯示 WML 配置器集內頁面和表單配置器類別的預設呈現。
頁面配置器會執行下列步驟:
- 呼叫寫入器的 BeginResponse 和 BeginFile 方法。內容類型為 text/vnd.wap.wml。
- 寫出開頭 <wml> 標記。
- 呈現作用中表單。
- 如果可能,將連結表單呈現為相同 WML Deck 的一部分。
- 寫出結尾 </wml> 標記。
- 呼叫 EndFile 和 EndResponse 方法。
表單配置器會執行下列步驟:
- 將寫入器設為分析模式。
- 呼叫寫入器的 BeginForm 方法。
- 呈現表單內容。其結果不會傳送至裝置,而會由寫入器進行分析。
- 呼叫寫入器的 EndForm 方法。
- 將寫入器設為連線模式。
- 呼叫寫入器的 BeginForm 方法。
- 呈現表單內容。
- 呼叫寫入器的 EndForm 方法。
使用樣式
WmlMobileTextWriter 類別提供數種 helper 方法,可協助您使用樣式資訊來呈現內容:
- EnterLayout 和 ExitLayout 方法允許配置器藉由使用指定樣式的段落格式,發出區塊的開頭和結尾標記。
- EnterFormat 和 ExitFormat 方法允許配置器藉由使用指定樣式的字元格式,發出區塊的開頭和結尾標記。
- ResetFormattingState 方法允許配置器將格式狀態重設為預設狀態。
調整呈現方法
WmlMobileTextWriter 類別提供數種高階的呈現方法,如下表所示。
WML 配置器必須使用這些方法來呈現內容,因為寫入器可以根據目標裝置的功能,自動以最佳方式調整輸出。
如需每個方法的詳細資訊,請參閱 WmlMobileTextWriter 類別的參考文件。
| 寫入器方法 | 說明 |
|---|---|
| RenderText | 呈現文字項目。 |
| RenderImage | 呈現影像項目。 |
| RenderTextBox | 呈現文字輸入方塊項目。 |
| RenderBeginHyperlink | 呈現超連結 (Hyperlink) 項目。呼叫 RenderText 或 RenderImage 方法,呈現超連結內的文字或影像。 |
| RenderBeginPostBack | 呈現回傳項目。呼叫 RenderText 或 RenderImage 方法,呈現回傳內的文字或影像。 |
| RenderBeginSelect | 呈現選擇清單項目。呼叫 RenderSelectOption 方法,呈現選擇清單中的每個選項。 |
| AddFormVariable | 加入要與表單一起呈現的變數和初始值。當 WML 裝置呈現表單時,會將變數初始化為指定的初始值。 |
此外,WmlControlAdapter 基底類別 (Base Class) 還提供數種較高階的方法,如下表所示。其中每個方法都使用之前提到用於呈現的寫入器方法。
| 配置器方法 | 說明 |
|---|---|
| RenderBeginLink | 呈現連結。配置器會自動判斷如何呈現連結,將相同頁面上的表單連結呈現為回傳,並將其他連結呈現為超連結。
呼叫寫入器的 RenderText 或 RenderImage 方法,以呈現連結內的文字或影像。 |
| RenderLink | 呈現具有內部文字的連結。 |
| RenderPostBackEvent | 呈現以控制項當作目標的回傳事件。 |
在使用者介面 (UI) 中呈現功能表
在某些 WML 架構的裝置上,由多個連結或錨點 (Anchor) 所組成的表單可以透過 Select/Option 建構 (<select> 和 <option> 標記),用自動產生的鍵台巡覽使用者介面 (UI) 呈現為項目功能表,以取得更好的效果。Openwave Up.Browser 瀏覽器就是此類裝置的範例。
如果表單是由零個或多個可呈現為靜態文字的控制項所組成,而這些控制項之後又有一或多個可以用 Select/Option 建構呈現的控制項,則 WML 表單配置器可以將該表單呈現為功能表。
如果 MobileCapabilities 類別的 RendersWmlSelectsAsMenuCards 屬性設定為 true,則裝置可以將 <select> 標記建構呈現為功能表 Card,而非下拉式方塊。
如果瀏覽器可以將包含多個表單的 Deck 當作個別的 Card 來處理,CanCombineFormsInDeck 會設為 true。配置器可以將相同頁面的多個表單,輸出為單一 Deck 的 Card。
呈現表單接受
當呈現的表單包含將表單結果送回伺服器的 UI 時,某些 WML 架構的裝置要求指定裝置的 UI 必須在表單開頭使用 <do> 物件的形式。Openwave Up.Browser 瀏覽器就是此類裝置的範例。
當裝置要求 UI 使用 <do> 物件時,表單配置器會檢查表單上是否有任何控制項需要送出 UI,以及是否有任何控制項確實提供此類 UI。為了進行這些判斷,表單配置器會查詢表單上每個控制項的配置器。
呈現螢幕鍵盤
某些控制項所呈現的 UI,可以在 WML 架構的裝置上對應至螢幕鍵盤。如果裝置將 WML <do> 建構呈現為內嵌 (Inline) 按鈕,而非螢幕鍵盤,則 MobileCapabilities 類別的 RendersWmlDoAcceptsInline 屬性是設定為 true。
輔助 UI
WML 配置器集支援一種稱為輔助 UI 的概念。輔助 UI 是由必須顯示使用者介面之額外畫面的控制項所使用,這種顯示方式,就像在 Windows 架構的應用程式中顯示對話方塊。若要使用輔助 UI,控制項配置器會執行下列步驟:
- 回應使用者互動時 (通常是在可覆寫的 HandlePostBackEvent 方法中),控制器配置器會藉由設定 WmlControlAdapter 基底類別的 SecondaryUIMode 屬性,將輔助 UI 模式設為一個內部已知的常數。
- 在進行呈現時,控制項會檢查它是否處於輔助 UI 模式,並使用該模式來呈現適當的輔助 UI。
- 在回應來自輔助 UI 的使用者互動時,控制項配置器可能會將輔助 UI 模式變更為其他值,或也可能藉由呼叫 WmlControlAdapter 基底類別的 ExitSecondaryMode 方法,結束輔助 UI 模式。
額外功能
WML 裝置還公開 (Expose) 了可用來變更呈現的額外功能。您可透過 MobileCapabilities 類別的 HasCapability 方法來存取這些功能。
請參閱
如需詳細資訊,請參閱裝置能力表。