裝置篩選建議事項
更新:2007 年 11 月
本主題說明如何為 ASP.NET Mobile 控制項建立以比較為基礎和評估工具委派的篩選條件。裝置篩選條件提供建立具名準則的機制,您可以用這些指定裝置或是行動裝置的屬性。這些篩選條件都存放在 Web.config 檔的 <deviceFilters> 區段中。
每個裝置篩選條件符合一種或多種裝置,而一個裝置可以符合多個篩選條件。例如,Pocket PC 可能會符合篩選條件 IsColor (彩色裝置),符合 IsPDA (PDA),以及符合 IsHTML32 篩選條件 (HTML 架構瀏覽器)。
對於每個篩選條件,您都可以在 Web.config 檔的 <deviceFilters> 區段中,加入 <filter> 項目。
您可以指定以比較為基礎的篩選條件和以評估工具委派 (Delegate) 為基礎的篩選條件。
以比較為基礎的篩選條件
以比較為基礎的篩選條件會將 MobileCapabilities 屬性值與引數比較。比較篩選條件的語法如下:
<filter
name="nameofFilter"
compare="propertyName"
argument="filterargument" />
在以比較為基礎的篩選條件中,<filter> 項目具有三個屬性:
name 屬性 (Attribute),這是篩選條件的名稱。
compare 屬性 (Attribute),包含篩選條件所評估的屬性 (Property)。
argument 屬性,是 propertyName值會與其比較的引數。如果沒有提供引數,則會使用 null 進行比較。
在下列範例中,如果 PreferredRenderingType 值為 wml11,則篩選條件相符。
<filter
name="isWML11"
compare="PreferredRenderingType"
argument="wml11" />
當篩選條件用於 <Choice> 項目,而且該篩選條件的比對符合時,ASP.NET 便會選取在 <Choice> 項目內之樣板所包含的裝置特定內容。
以評估工具委派為基礎的篩選條件
以評估工具委派為基礎的篩選條件會從自訂方法傳回 true 或 false。該方法會計算 MobileCapabilities 類別 (Class) 中任何屬性的傳回值。傳回的值用來決定篩選條件是否相符。
以評估工具委派為基礎之篩選條件的語法如下:
<filter
name="nameOfFilter"
type="className"
method="methodName" />
在以評估工具委派為基礎的篩選條件中,具有三個屬性 (Property):
name 屬性,這是篩選條件的名稱。
type 屬性,提供評估工具委派的類別型別。必須使用完整名稱。ASP.NET 會搜尋該型別的指定組件。
method 屬性,這是在 Type 類別上的方法名稱。此方法會傳回布林值 (Boolean),表示根據傳遞到其中的 MobileCapabilities 執行個體 (Instance),目前的裝置是否滿足這個篩選條件。
在下列範例中,如果 IsGPSEnabled 方法傳回 true,則篩選條件相符。
<filter
name="GPSEnabled"
type="MyApplication.MyCapabilityEvaluators,MyAssembly"
method="IsGPSEnabled"/>
下列範例是 IsGPSEnabled 方法的基本架構宣告。
namespace MyApplication
{
public class MyCapabilityEvaluators
{
public static bool IsGPSEnabled(
System.Web.Mobile.MobileCapabilities capabilities,
String unusedArg)
{
// Any necessary proccessing goes here.
}
}
}
您可以在 Web.config 檔的 <deviceFilters> 區段中加入一行,以加入篩選條件的支援。例如,如果您將上一個篩選條件編譯成名為 MyApplication.dll 的組件 (Assembly),您就要將下面這行文字加入到 Web.config 檔:
<filter name="IsGPSEnabled"
type="MyApplication.MyCapabilityEvaluators,MyApplication"
method="IsGPSEnabled" />