Опубликован: 24.01.2007 | Доступ: свободный | Студентов: 1253 / 82 | Оценка: 4.37 / 4.17 | Длительность: 14:27:00
ISBN: 978-5-94774-627-3
Лекция 5:

Настроечные параметры мобильных элементов управления

< Лекция 4 || Лекция 5: 123 || Лекция 6 >

Создание фильтра сравнения

Ниже перечислены шаги, которые следует предпринять для создания фильтра сравнения.

  1. Решите, какую возможность следует проверять. Это может быть любая возможность, доступная через класс mobileCapabilities. В примере проверяется возможность isColor, определяющая наличие в устройстве цветного дисплея.
  2. Решите, какое значение следует проверять; в примере проверяется значение true.
  3. С помощью информацию, полученной на шаге 1 и 2, создайте новый элемент <filter> и добавьте его в раздел <deviceFilters> файла machine.config или web.config, например, как показано ниже:
<deviceFilters>
  <filter name="IsColorCapable" compare="isColor"
    argument="true" />
</deviceFilters>

Данный фильтр будет возвращать значение true, если возможность isColor равна true.

Создание оценочного фильтра

Фильтры оценки при возвращении true или false используют собственный класс. Поскольку вы пишете класс, он может оценивать любое количество свойств или переменных. Первым шагом является создание класса для определения значения, возвращаемого фильтром ( true или false ), например, как показано ниже.

C#

public bool methodName(System.Web.Mobile.MobileCapabilities
  mobileCaps, string optionalString)
{
  // Здесь расположена логика класса
}

VB.NET

Public Function methodName(mobileCaps as _
  System.Web.Mobile.MobileCapabilities, optionalString as String) _
  as Boolean
  'Здесь расположена логика класса
End Function

Данный метод принимает экземпляр класса MobileCapabilities, который позволяет считывать свойства возможностей браузера и определять, должен ли класс возвратить значение true или false. Второй параметр – это строка, с помощью которой передается дополнительная информация, необходимая для использования в классе. Ниже приведены шаги для создания и настройки оценочного фильтра.

  1. Создайте собственный класс для вычисления true или false. Пример оценочного класса показан ниже. Этот класс проверяет возможности браузера isColor и ScreenBitDepth и определяет, может ли запрашивающее устройство работать с многоцветными изображениями.
  2. Добавьте фильтр в раздел <deviceFilters>.
<deviceFilters>
  <filter name="IsHighColor" type="ASPNETConfig.MEvaluators,
    ASPNETConfig.dll" method="IsHighColor" />
</deviceFilters>

Данный фильтр будет возвращать true, если запрашивающее устройство способно работать с многоцветными изображениями.

C#

public bool isHighColor(System.Web.Mobile.MobileCapabilities
  mobileCaps, string OptionalString)
{
  bool bIsHighColor;
  if(mobileCaps.IsColor == true &&
    mobileCaps.ScreenBitDepth >= 16)
  {
    bIsHighColor = true;
  }
  else
  {
    bIsHighColor = false;
  }
  return bIsHighColor;
}

VB.NET

Public Function isHighColor(mobileCaps As _
  System.Web.Mobile.MobileCapabilities, OptionalString As String) _
  As Boolean
  Dim bIsHighColor As Boolean
  If mobileCaps.IsColor = True And _
    mobileCaps.ScreenBitDepth >= 16 Then
    bIsHighColor = True
  Else
    bIsHighColor = False
  End If
  Return bIsHighColor
End Function

Использование фильтров для мобильных элементов управления

Теперь давайте рассмотрим, как использовать фильтры для настройки содержимого, генерируемого мобильными элементами управления. Оба описанных фильтра предназначены для определения цветовых возможностей запрашивающего устройства, так что вполне естественно, если мы рассмотрим их применение для элемента управления <mobile:Image>. Ниже показан пример элемента управления <mobile:Image>, который не использует фильтры.

<mobile:Image runat="server" ImageURL="logo.gif" />

Данный элемент управления отображает файл logo.gif на всех устройствах, с которых осуществляется доступ к вашей странице. Это хорошо для настольных компьютеров и ноутбуков, но мобильные устройства требуют, чтобы изображение было настроено в соответствии с цветовыми возможностями устройства. Для использования в этом элементе управления фильтров из предыдущего раздела применим элемент <DeviceSpecific>. Этот элемент служит для указания параметров, связанных с фильтрами, в любом мобильном элементе управления. Ниже приведен его синтаксис.

<mobile:Image runat="server" ImageURL="logo.gif">
  <DeviceSpecific>
    <Choice Filter="filter name"
      ControlProperty1="value"
      ControlProperty2="value" />
  </DeviceSpecific>
</mobile:Image>

В элементе <choice> можно указать любое количество свойств элемента управления. Если элемент управления отображается, и фильтр возвращает значение true, то к этому элементу применяются свойства из элемента <choice>. Ниже приведен пример использования двух определенных ранее фильтров.

<mobile:Image runat="Server" ImageURL="logoBW.gif">
  <DeviceSpecific>
    <Choice Filter="IsColor" ImageURL="logoColor.gif" />
    <Choice Filter="IsHighColor" ImageURL="logoHighColor.gif" />
  </DeviceSpecific>
</mobile:Image>

Рассмотрим порядок событий, возникающих при отображении данного элемента управления.

  1. Свойство ImageURL устанавливается в значение logoBW.gif (черно-белый логотип).
  2. Обрабатываются элемент <DeviceSpecific> и включенный в него элемент <choice>.
  3. Если фильтр IsColor возвращает значение true, свойству ImageURL присваивается значение logoColor.gif, при возвращении false фильтр не выполняется.
  4. Если фильтр IsHighColor возвращает значение true, свойству ImageURL присваивается значение logoHighColor.gif, при возвращении false фильтр не выполняется.
  5. Элемент управления <mobile:Image> отображается с использованием свойства ImageURL.

Подобное использование фильтров позволяет настраивать свойства элемента управления, основываясь на любом количестве возможностей браузера или другом критерии.

Обновление устройств мобильных элементов управления

Наиболее важной частью настройки приложений для мобильных устройств является обеспечение гарантии того, что вы сможете обнаружить и правильно определить возможности большого количества различных мобильных устройств. По умолчанию ASP.NET обнаруживает множество устройств, но, как вы знаете, каждый день их количество растет. Поэтому Microsoft периодически выпускает Mobile Controls Device Updates (Обновления мобильных устройств для элементов управления). Эти обновления включают обновления для следующих разделов.

  • Настроечные параметры <browserCaps>.
  • Настроечные параметры <mobileControls>.
  • Сборки адаптеров.
  • Настроечные параметры <assemblies>.

Было опубликовано два таких обновления, но поскольку они кумулятивны, то потребуется установить самый последний. Одной из функций, включенных в доступное на момент написания книги обновление устройств, является новый адаптер XHTML. Этот адаптер генерирует для мобильных устройств с поддержкой XHTML содержимое, совместимое с XHTML. В будущем можно ожидать появления других обновлений, включая определение новых браузеров, новые адаптеры и прочее. Чтобы скачать наиболее свежее обновление браузера, проверьте веб-страницу новых выпусков

http://msdn.microsoft.com/vstudio/device/mobilecontrols/ aspmobiledrivers.asp.

Ключевые моменты

  • В разделе <mobileControls> объявляются и настраиваются адаптеры, используемые при генерации содержимого для конкретных форматов, включая HTML, CHTML и WML.
  • Использование в качестве основы примеров кода, доступных в MMIT, облегчает создание собственных адаптеров для новых мобильных устройств.
  • В разделе <deviceFilters> можно создать фильтры для проверки возможностей браузера, возвращающих либо значение true, либо значение false.
  • Элемент <DeviceSpecific> позволяет настроить вывод отдельного мобильного элемента управления с помощью фильтров, определенных в разделе <deviceFilters>.
  • Microsoft периодически выпускает обновления устройств, использующих мобильные элементы управления, с модификацией кода определения браузера, новых адаптеров и других настроечных параметров, предназначенных для работы с мобильными устройствами.
< Лекция 4 || Лекция 5: 123 || Лекция 6 >
Геннадий Щербаков
Геннадий Щербаков

В начале года получил код dreamspark  H4RQ9-QJ6FD-YJWJT-P6FVF-HGXQZ. При  его вводе- сообщение что он просрочен.