共用方式為


裝置篩選建議事項

更新: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" />

請參閱

概念

擴充的瀏覽器能力

裝置的特定呈現

參考

<filter> 項目