다음을 통해 공유


WML 어댑터 집합

업데이트: 2007년 11월

WML 어댑터 집합은 WML v1.1 또는 WML v1.2를 지원하는 클라이언트에서 ASP.NET 모바일 웹 페이지를 렌더링하는 데 사용할 수 있는 클래스로 구성됩니다. 일부 메서드와 속성은 이 문서에 포함되어 있지 않습니다. 다음 표에서는 WML 어댑터 집합에 포함된 핵심 클래스를 보여 줍니다.

WML 장치용 어댑터 집합

핵심 어댑터 클래스 네임스페이스

ControlAdapter 추상 기본 클래스

WmlControlAdapter

HtmlFormAdapter 클래스

WmlFormAdapter

PageAdapter 추상 클래스

WmlPageAdapter

MobileTextWriter 클래스

WmlMobileTextWriter

Openwave UP.Browser는 다른 페이지 어댑터와 텍스트 작성기를 사용합니다. 다음 표에서는 이러한 브라우저를 지원하는 어댑터 집합에서 사용되는 핵심 클래스를 보여 줍니다.

UP.Browser용 어댑터 집합

핵심 어댑터 클래스 네임스페이스

ControlAdapter 추상 기본 클래스

WmlControlAdapter

HtmlFormAdapter 클래스

WmlFormAdapter

PageAdapter 추상 클래스

UpWmlPageAdapter

MobileTextWriter 클래스

UpWmlMobileTextWriter

참고:

UP.Browser 4.1 또는 UP.Browser 3.2를 사용할 경우 Redirect 메서드는 Web.config 파일의 SessionState 섹션에 있는 Cookieless 속성이 명시적으로 true로 설정되어 있지 않은 한 항상 HttpBrowserCapabilities 개체의 SupportsRedirectWithCookie 속성 값이 false일 때와 같이 동작합니다.

ASP.NET 1.1에서는 이 속성에 true 또는 false만 설정할 수 있지만 ASP.NET 2.0에서는 설정할 수 있는 값이 더 많으며 현재 기본 설정은 AutoDetect입니다. Web.config 파일의 <sessionState> 섹션에서 웹 응용 프로그램의 cookieless 특성이 부울 값으로 설정된 경우 Redirect 메서드는 해당 브라우저에서 제대로 작동합니다.

선택

MobileCapabilities 클래스의 PreferredRenderingType 속성에서 PreferredRenderingTypeWml11 또는 PreferredRenderingTypeWml12가 반환되면 WML 어댑터 집합이 선택됩니다.

자동 선택 렌더링(adaptive rendering)

WML 어댑터 집합은 WML 기반 휴대폰의 다양한 기능을 지원할 수 있습니다. 따라서 어댑터 집합은 각 폼과 자식 컨트롤에 대해 Render 메서드를 실제로 두 번씩 호출합니다. 첫 번째 단계에서는 작성기가 분석 모드에 있으며 작성기에 대한 모든 호출을 사용하여 폼 출력을 분석하고, 두 번째 단계에서는 폼이 실제로 렌더링됩니다.

가능하면 이 두 단계를 구분하는 어댑터는 만들지 마십시오. 반드시 필요한 경우에는 WmlMobileTextWriter 클래스의 AnalyzeMode 속성을 선택하여 현재 모드에 액세스할 수 있는 어댑터를 작성할 수 있습니다.

기본 렌더링

다음 단계에서는 WML 어댑터 집합에서 페이지 및 폼 어댑터 클래스의 기본 렌더링을 보여 줍니다.

페이지 어댑터에서는 다음 단계를 수행합니다.

  1. 작성기의 BeginResponseBeginFile 메서드를 호출합니다. 콘텐츠 형식은 text/vnd.wap.wml입니다.

  2. 여는 <wml> 태그를 작성합니다.

  3. 활성 폼을 렌더링합니다.

  4. 가능하면 연결된 폼을 같은 WML 데크(deck)의 일부로 렌더링합니다.

  5. 닫는 </wml> 태그를 작성합니다.

  6. EndFileEndResponse 메서드를 호출합니다.

폼 어댑터에서는 다음 단계를 수행합니다.

  1. 작성기를 분석 모드로 설정합니다.

  2. 작성기의 BeginForm 메서드를 호출합니다.

  3. 폼 콘텐츠를 렌더링합니다. 결과는 장치에 전달되지 않지만 작성기에서 분석됩니다.

  4. 작성기의 EndForm 메서드를 호출합니다.

  5. 작성기를 라이브 모드로 설정합니다.

  6. 작성기의 BeginForm 메서드를 호출합니다.

  7. 폼 콘텐츠를 렌더링합니다.

  8. 작성기의 EndForm 메서드를 호출합니다.

스타일 사용

WmlMobileTextWriter 클래스는 스타일 정보를 사용하여 콘텐츠를 렌더링하는 데 도움이 되는 다양한 도우미 메서드를 제공합니다.

  • EnterLayoutExitLayout 메서드를 사용하면 어댑터에서는 지정된 스타일의 단락 서식을 사용하여 블록을 시작하거나 끝내는 태그를 생성할 수 있습니다.

  • EnterFormatExitFormat 메서드를 사용하면 어댑터에서는 지정된 스타일의 문자 서식을 사용하여 블록을 시작하거나 끝내는 태그를 생성할 수 있습니다.

  • ResetFormattingState 메서드를 사용하면 어댑터에서는 서식 상태를 기본 상태로 다시 설정할 수 있습니다.

자동 선택 렌더링(adaptive rendering) 메서드

WmlMobileTextWriter 클래스는 아래 표와 같이 렌더링하는 데 사용할 수 있는 다양한 최상위 메서드를 제공합니다.

작성기에서는 대상 장치의 기능에 따라 최적화된 출력을 자동으로 선택할 수 있으므로 WML 어댑터는 이러한 메서드를 사용하여 콘텐츠를 렌더링해야 합니다.

이러한 각 메서드에 대한 자세한 내용은 WmlMobileTextWriter 클래스의 문서를 참조하십시오.

작성기 메서드

설명

RenderText

텍스트 요소를 렌더링합니다.

RenderImage

이미지 요소를 렌더링합니다.

RenderTextBox

텍스트 입력 상자 요소를 렌더링합니다.

RenderEndHyperlink

하이퍼링크 요소를 렌더링합니다.

RenderText 또는 RenderImage 메서드를 호출하여 하이퍼링크 내의 텍스트 또는 이미지를 렌더링합니다.

RenderBeginPostBack

RenderEndPostBack

포스트백 요소를 렌더링합니다.

RenderText 또는 RenderImage 메서드를 호출하여 포스트백 요소 내의 텍스트 또는 이미지를 렌더링합니다.

RenderBeginSelect

RenderEndSelect

RenderSelectOption

선택 목록 요소를 렌더링합니다.

RenderSelectOption 메서드를 호출하여 선택 목록의 각 옵션을 렌더링합니다.

AddFormVariable

폼과 함께 렌더링할 변수 및 초기 값을 추가합니다. WML 장치에서 폼을 렌더링할 때 이 변수는 지정된 값으로 초기화됩니다.

또한 WmlControlAdapter 기본 클래스는 아래 표와 같이 다양한 최상위 메서드를 제공합니다. 이러한 각 메서드는 앞에서 설명한 작성기 메서드를 사용하여 렌더링합니다.

어댑터 메서드

설명

RenderBeginLink

RenderEndLink

링크를 렌더링합니다. 어댑터는 링크 렌더링 방법을 자동으로 결정하여 일부 링크는 같은 페이지의 폼에 포스트백으로 렌더링하고 다른 링크는 하이퍼링크로 렌더링합니다.

작성기에서 RenderText 또는 RenderImage 메서드를 호출하여 링크 내의 텍스트 또는 이미지를 렌더링합니다.

RenderLink

내부 텍스트가 있는 링크를 렌더링합니다.

RenderPostBackEvent

컨트롤을 대상으로 포스트백 이벤트를 렌더링합니다.

메뉴 렌더링

일부 WML 기반 장치에서 <select> 및 <option> 요소를 사용하면 여러 개의 링크나 앵커로 구성된 폼을 자동 생성된 키패드 탐색 UI(사용자 인터페이스)가 포함된 항목 메뉴로 쉽게 렌더링할 수 있습니다. 이러한 장치로는 Openwave UP.Browser가 있습니다.

폼이 정적 텍스트로 렌더링되는 0개 이상의 컨트롤과 그 뒤에 <select> 및 <option> 요소를 렌더링할 수 있는 하나 이상의 컨트롤로 구성된 경우 WML 폼 어댑터는 폼을 메뉴로 렌더링할 수 있습니다.

MobileCapabilities 클래스의 RendersWmlSelectsAsMenuCards 속성이 true로 설정된 경우 장치에서는 <select> 요소를 콤보 상자 대신 메뉴 카드로 렌더링할 수 있습니다.

브라우저에서 여러 개의 폼을 포함하는 데크를 별도의 카드로 처리할 수 있으면 CanCombineFormsInDeck이 true로 설정됩니다. 그러면 어댑터는 동일한 페이지에서 여러 개의 폼을 하나의 데크로 구성된 카드로 출력할 수 있습니다.

폼 허용 컨트롤 렌더링

렌더링된 폼에 폼을 서버로 다시 전송하는 UI가 포함되어 있는 경우 일부 WML 기반 장치에서는 지정된 장치의 UI가 폼 시작 부분에 <do> 요소로 있어야 합니다. 이러한 장치로는 Openwave UP.Browser가 있습니다.

장치에서 UI가 <do> 요소를 사용해야 하는 경우 폼 어댑터는 UI를 전송해야 하는 컨트롤이 폼에 있는지 여부와 이러한 UI를 제공하는 컨트롤이 있는지 여부를 확인합니다. 이를 판별하기 위해 폼 어댑터는 폼에서 각 컨트롤의 어댑터를 쿼리합니다.

소프트 키 렌더링

일부 컨트롤은 WML 기반 장치에서 소프트 키에 매핑할 수 있는 UI를 렌더링합니다. 장치에서 WML <do> 요소를 소프트 키 대신 인라인 단추로 렌더링하면 MobileCapabilities 클래스의 RendersWmlDoAcceptsInline 속성이 true로 설정됩니다.

보조 UI

WML 어댑터 집합은 보조 UI를 지원합니다. 보조 UI는 컨트롤에서 사용자 인터페이스의 추가 화면을 표시하는 데 사용됩니다. 보조 UI를 사용하기 위해 컨트롤 어댑터는 다음 단계를 수행합니다.

  1. 일반적으로 재정의 가능한 HandlePostBackEvent 메서드에서 일부 사용자 상호 작용에 응답할 때 컨트롤 어댑터는 WmlControlAdapter 기본 클래스의 SecondaryUIMode 속성을 설정하여 보조 UI 모드를 지정합니다.

  2. 렌더링 단계에서 컨트롤은 해당 모드가 보조 UI 모드인지 여부를 확인한 다음, 보조 UI 모드인 경우 적절한 보조 UI를 렌더링합니다.

  3. 보조 UI에서 사용자 상호 작용에 응답할 때 컨트롤 어댑터는 보조 UI 모드를 다른 값으로 변경하거나 WmlControlAdapter 기본 클래스의 ExitSecondaryUIMode 메서드를 호출하여 보조 UI 모드를 종료할 수 있습니다.

추가 기능

WML 장치는 렌더링을 변경하는 데 사용할 수 있는 추가 기능을 노출합니다. MobileCapabilities 클래스의 HasCapability 메서드를 통해 이러한 기능에 액세스할 수 있습니다.

참고 항목

개념

어댑터 집합 기능

참조

장치 기능 표