Nate ⓜ Browser V3.0과 LGT Lion Browser 은 UTF-8 을 지원하지 않습니다.

Posted at 2008/03/07 18:00 // in 웹프로그래밍™/WAP, Mobile // by 블루비

이런 자증 스런운 일이 있다니요..

KTF의 KUN 브라우져는 UTF-8을 아주 잘 지원해줍니다.
하지만 SKT의 NateBrowser V3.0(Nate m Browser V3.0)과 LGT의 Lion Browser 은 무슨 이유에서 인지 UTF-8을 지원하지 않더군요!

모바일 시장은 역시나 한국에서는 찬밥 신세인가 봅니다.

가까운 이웃 일본은 모바일 산업에 많은 기술 투자를 하고 있는것으로 알고 있는데
이러니 한국이 IT 강대국 해봤자 소용없는 것이지요.. ㅠ.ㅠ
2008/03/07 18:00 2008/03/07 18:00
  1. HFK

    2008/03/07 16:21 [수정/삭제] [답글]

    좀 다른 이야기지만, SKT의 컬러메일도 문자 인코딩을 이상하게 하더군요. UTF-8도 아니고, EUC-KR도 아니고, 바이너리 형식으로 쓴다나요... 표준과 거리가 멀어 보입니다.

    • 블루비

      2008/03/07 17:58 [수정/삭제]

      이런 이런..
      우물안 개구리식 환경에서 어쩌자는건지 우리끼리 좋아서 뭐할라공 ㅠ.ㅠ

      정말 답답할 따름입니다.

      LGT Lion Browser 역시 UTF-8이 지원이 안되더군요..
      한숨만 나옵니다.

댓글을 남겨주세요.

[로그인][오픈아이디란?]

모바일 해상도

Posted at 2008/03/05 18:11 // in 웹프로그래밍™/WAP, Mobile // by 블루비
120 * 160
128 * 160
176 * 220
240 * 297 (VM) / 240 * 320
320 * 240 (PDA용)

요정도로 정리가 될거 같습니다.
보편화된 해상도는 240*297 일까요?





2008/03/05 18:11 2008/03/05 18:11
  1. azki

    2008/03/05 20:10 [수정/삭제] [답글]

    120*144 인거 같네요

    • 블루비

      2008/03/05 20:27 [수정/삭제]

      아하.. ^^ 감사합니다.
      azki님은 뭐하시는 분이신지??
      자주 방문도 해주시고 댓글도 달아주시고.. VIP 손님 이시넹.. ^^

    • azki

      2008/03/06 10:37 [수정/삭제]

      이것 저것해왔던 개발자이긴합니다만, 요새는 Ajax 컴포넌트를 만들고 있습니다 -ㅁ-.. 평균 개발자 연봉을 극적으로 깍아먹는 ㅂㅌ이라는 존재입니다

    • 블루비

      2008/03/06 17:27 [수정/삭제]

      음.. 그럼 자바스크립쪽만 개발하시는건가요?
      그렇게 파트별로 전문성있게 연구개발직으로 일하고 싶은 아직은
      제 스킬도 부족하고 지금 몸 담은 회사도 그럴 여력이 없네요..
      차츰 좋아 지겠죠. .웹이전시의 생리임에도 요즘 많은 변화가 불긴합니다. ^^
      자신이 하는 일에 최선을 다하면 좋은 날오겠죠.. ^^ 화이팅..

      참그리고 120*160 사이즈가 정확한거 같습니다. ^^

댓글을 남겨주세요.

[로그인][오픈아이디란?]

WMLScript Tutorial & WMLscript 함수 호출 방법

Posted at 2008/02/28 13:53 // in 웹프로그래밍™/WAP, Mobile // by 블루비
http://www.w3schools.com/wmlscript/default.asp


함수 호출 방법

wap.wml:
<?xml version="1.0"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN"
"http://www.wapforum.org/DTD/wml_1.1.xml">
<wml>
<card id="no1" title="Go to URL">
<do type="options" label="Go">
<go href="check.wmls#go_url('W3Schools')"/>
</do>
</card>
</wml>
빨간색 라인은 check.wmls 파일의 go_url 이라는 함수를 호출하는 문법이다.

check.wmls:
extern function go_url(the_url)
{
if (the_url=="W3Schools")
{
WMLBrowser.go("http://www.w3schools.com/wap.wml")
}
}



2008/02/28 13:53 2008/02/28 13:53

댓글을 남겨주세요.

[로그인][오픈아이디란?]

HTML / XHTML / WML / WML2 / XML Validator

Posted at 2008/02/27 11:09 // in 웹프로그래밍™/WAP, Mobile // by 블루비
HTML / XHTML / WML / WML2 / XML Validator

http://www.validome.org/validate

Nate m Browser v3.0 DTD 오류 때문에 애를 먹었습니다.

DTD Error
<form method="post">
<input type="text" name="name" value=""/>
</form>


이경우 가차 없이 DTD 에러 페이지를 표시 해줍니다.
HTML 문법상 문제가 전혀 없어 보이죠...
하지만 WML2 은 다릅니다.

input element 에 꼭 `h1`, `h2`, `h3`, `h4`, `h5`, `h6`, `p`, `div`, `pre`, `address`, `fieldset` 태그로 감싸줘야 문법 오류에서 벗어 날 수 있습니다.

DTD Ok
<form method="post">
<div><input type="text" name="name" value=""/></div>
</form>


Validator 가 없었다면 문제가 먼지 계속 헤매면서 시간만 허비 할 뻔 했습니다.
혹시나 싶어서 검색을 해보니 역시 있었네요.. 휴 다행..





2008/02/27 11:09 2008/02/27 11:09
  1. azki

    2008/02/27 17:33 [수정/삭제] [답글]

    http://html.nhndesign.com/blog/?p=117
    이거 괜찮은거 같아요
    (저도 FF에 깔아서 쓰고 있는데 매우 만족중)

    • 블루비

      2008/02/27 18:13 [수정/삭제]

      오호 드림위버쪽에서 에서도 기능이 있었군요..
      파폭은 플로그인으로 지원하는것은 알고 있었는데

      좋은 정보 감사해요

댓글을 남겨주세요.

[로그인][오픈아이디란?]

SKT AGENT Infomation

Posted at 2008/02/27 10:45 // in 웹프로그래밍™/WAP, Mobile // by 블루비
<?
$agent = setenv('HTTP_USER_AGENT');
?>


AAABCDDEEFFGGHHHIIIJJKKLLMMMMMMMM;O;P;Q;R
( 01056SSE7351124029722111600000000;149;101;49276;178;2236 )


AAA : 이통사
SKT - SK텔레콤
010 - SKT010
KTF - SKT016번호이동
HSP - SKT018번호이동
LGT - SKT019번호이동

B : 서비스방식
1 - WAP 방식
2 - SK Web
3 - 스팅거
4 - IS95C(왑)
5 - EVDO
6 - WCDMA

C : 단말기타입
1 - Cellular Phone
2 - PDA
3 - Smart Phone
4 - VMT 단말
5 - IS95C 단말
6 - EVDO 단말
7 - DMDB 단말


DD : 단말기제조업체
SS - 삼성
HD - 현대
LG - LG
SK - SKTT
HH - 한화
MT - 모토로라
NO - 노키아
SY - 산요
TS - 텔슨


EE : 업체별 단말기모델


FF : 브라우저 제조사
00 - AU System
01 - Ericsson
02 - Nokia
03 - Telson
05 - WAP1.x(Infraware)
10 - WAP1.x(텔레카)
15 - WAP2.0(Infraware)
20 - WAP2.0(텔레카)
25 - WAP2.0(Infraware)
30 - WAP2.0(텔레카)
35 - WAP2.0(Infraware)
40 - WAP2.0(텔레카)


GG : 브라우저버젼



HHHIII : 가로세로의 LCD 픽셀



JJKK : 가로세로의 문자수/라인수



LL : LCD 칼라
01 - 흑백
02 - 4Gray
08 - 256칼라
12 - 4096 칼라
16 - 65000 칼라
18 - 260000 칼라



MMMMMMMM : 휴대폰번호(앞자리 제외)


2008/02/27 10:45 2008/02/27 10:45

댓글을 남겨주세요.

[로그인][오픈아이디란?]

mhtml, wml, wml2 reference

Posted at 2008/02/25 22:13 // in 웹프로그래밍™/WAP, Mobile // by 블루비
mhtml reference :



wml :http://www.w3schools.com/wap/wml_reference.asp
wml 2.0 : http://www.tutorialspoint.com/wml/wml2_tags_reference.htm
2008/02/25 22:13 2008/02/25 22:13

댓글을 남겨주세요.

[로그인][오픈아이디란?]

WML 이미지 & 멜로디 다운로드 활용

Posted at 2008/02/25 15:15 // in 웹프로그래밍™/WAP, Mobile // by 블루비
출처 : http://cafe.naver.com/mobilenjoy.cafe?iframe_url=/ArticleRead.nhn%3Farticleid=538

다운로드자료 melody_paly.zip (예제 압축 -> song.wml /preplay.wmls / melody.mmf)
-------------------------------------------------------------------------------------------------------------
(1) 이미지 컨텐츠

이미지는 PC에서 쓰이는 JPG같은 것은,
특정폰(JPG디코더 포함폰)을 제외하고는,
일반적인 폰에서 재생이 불가능합니다.

흑백(B/W)폰에서는 WBMP또는 SIS로,
4GRAY및 컬러폰에서는 SIS로 이미지 파일을 만드셔야 합니다.

WBMP툴은 여기 자료실에도 있는것 같은데 공짜구요,
SIS는 몇백만원하지요. USB키가 있어야 실행되므로 정품구매하셔야 합니다.

서버쪽에서는 간단히 WML태그로 <img src="URL"> 해주시면 됩니다.

다운로드시에는, SKT(011)의 경우 WML Script를 쓰시면 됩니다.

Multimedia.SetImage( URL, TITLE, KIND, TYPE );
URL = "http://test.com/test.wbmp"
TITLE = "내사진"
KIND = 0~4 (2: 단말기 대기화면..)
TYPE = 0~.. (1: animation SIS)

wbmp.wml
-------------------------------------------------------------------------------------------------------------
<?xml version="1.0"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN"
"http://www.wapforum.org/DTD/wml_1.1.xml"
>
<wml>
<card title="WML Examples">
<p mode="nowrap">
WBMP Test
</p>
<p>
<img alt="wbmp" src="santa.wbmp"/>
</p>

<p>
<do type="accept" label="save">
<go href="image.wmls#wbmp_save()"/>
</do>
</p>

</card>
</wml>

image.wmls
-------------------------------------------------------------------------------------------------------------
extern function wbmp_save(){
var a = Multimedia.setImage("http://localhost/santa.wbmp", "santa",
2, 0);
var b = Dialogs.alert(">"+a);
}

>0 : 성공
>1002 : Invalid_Data_Format
=============================================================================================================

(2) 벨소리

벨소리는 http://smaf.yamaha.co.jp 가시면 변환툴이 있습니다.
소스는 일반 MIDI (*.mid)이면 되고, 이를 입력으로 주면 출력으로
MA2(16화음) 또는 MA3(40화음) 파일(*.mmf)이 나옵니다.

재생은, WML Script로 Audio.Play(URL, TITLE, TYPE, PLAYTYPE); 입니다.
URL = "http://test.com/test.mmf"
TITLE = "나만의 벨소리"
TYPE = 1~... (21: MA2 22:MA3)
PLAYTYPE = 1,2 (1: memory down&play)
정지는, Audio.Stop();

다운로드는, Audio.DownLoad(URL, TITLE, TYPE, SAVETYPE); 입니다.
SAVETYPE = 1,2 (1: 기본멜로디로 설정, 2: 일반 다운로드)

song.wmls
-------------------------------------------------------------------------------------------------------------
<?xml version = "1.0" encoding = "ks_c_5601-1987"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1_1.xml">

<wml>
<card id ="melody" title="벨소리 플레이">
<onevent type="ontimer">
<go href="preplay.wmls#playgo()">
<setvar name="preva" value="melody.mmf"/>
<setvar name="prevb" value="MySong"/>
<setvar name="prevc" value="21"/>

<!-- prevc 정의 1poly 인 경우: value="5" 4poly 인 경우: value="20"
16poly/40poly인 경우 : value="21"-->

<setvar name="prevd" value="1"/>
</go>
</onevent>

<timer name="time" value="10"/>
<!-- 페이지 접속 후 1초 후 연주시작 -->
<p align="center">멜로디 연주 TEST</p>

<do type="vnd.skmn1" label="연주멈춤">
<go href="preplay.wmls#playstop()"/>
</do>

<do type="vnd.skmn2" label="다운로드">
<go href="preplay.wmls#download()"/>
</do>
</card>
</wml>

preplay.wmls
-------------------------------------------------------------------------------------------------------------
extern function playgo() {
var pa=WMLBrowser.getVar("preva");
var pb=WMLBrowser.getVar("prevb");
var pc=WMLBrowser.getVar("prevc");
var pd="1";
Audio.Play(pa,pb,pc,pd);
}

extern function playstop() {
Audio.Stop();
WMLBrowser.refresh();
}

extern function download() {
var pa=WMLBrowser.getVar("preva");
var pb=WMLBrowser.getVar("prevb");
var pc=WMLBrowser.getVar("prevc");
var pd="1";
Audio.DownLoad(pa,pb,pc,pd);
}
2008/02/25 15:15 2008/02/25 15:15

댓글을 남겨주세요.

[로그인][오픈아이디란?]

OPENWAVE - Phone Simulator (모바일 시뮬레이터)

Posted at 2008/02/25 13:10 // in 웹프로그래밍™/WAP, Mobile // by 블루비
http://developer.openwave.com

모바일 홈페이지 제작시 필요한 폰 시뮬레이터 입니다.
무료로 Phone Simulator V7 를 다운받을 수 있습니다. (가입을 하셔야 합니다.)

직접 설치 해보고 현재 UTF-8로 개발 중인데 한글이 깨지는 현상이 발생하던군요
원인이 뭔가 봤더니 설정된 font 때문이었습니다.

Settings > Device Properties > Font 탭에서 Default Font : arialuni.ttf 값을 gulim.ttc로 변경해주면 한글도 잘 보여집니다.

2008/02/25 13:10 2008/02/25 13:10
  1. 프라키아

    2008/12/01 18:35 [수정/삭제] [답글]

    님 말대로 디폴트 폰트를 굴림체로 바꿨는데도 계속 깨짐현상이 발생합니다.
    혹시나 제가 작성한 코드에 문제가 있나 싶어서,
    구글이나 야후코리아를 오픈웨이브로 접속해 봤는데요.역시나 한글깨짐현상이 생기네요.어쩌면 좋죠??

    • 블루비

      2008/12/01 20:26 [수정/삭제]

      파일을 저장하실때 파일 포멧을 utf-8 으로 하셧는지 확인해보세요
      ansi 포멧으로 저장하셔서 그런거 같습니다.

댓글을 남겨주세요.

[로그인][오픈아이디란?]

모바일 시뮬레이터

Posted at 2008/02/22 10:27 // in 웹프로그래밍™/WAP, Mobile // by 블루비
★ 시뮬레이터의 종류
WML -- UP.SDK 4.0(011/017/019)NATE와 ez-i 서비스 개발용
mHTML -- Mobile Explorer121(016/018)Magicn 서비스 개발용
HDML -- UP.SDK 3.2 거의 사용하지 않음

* F4 = (Alerts)
* F5 = (소스보기)
* F6 = (Cache)
* F7 = (History)
* F8 = (Memory)
* F9 = (새로고침)
* F10 = (Vars)
* F11 = (Cookies)
* F12 = (Cache Clear)

※ up.sdk 4.0의 에러중 해당 문서의 파일이 너무 커서 발생하는 에러는? HTTP 1002 Error
※ 특정 서버로 접속 시에 발생하는 경우의 에러는? Net time(프로그램 버그라고 판단되나, 휴대폰에서는 문제가 없다.)
※ 브라우저 버전을 체크하여 자동으로 Redirect하는 경우 발생하는 에러는? Sorry Interrupted(휴대폰에는 문제 없음)

★ UP.SDK4.0이용시 에러메세지
☞ HTTP 404 = URL 주소나 가상 디렉토리를 확인한다.(해당사이트의 파일을 찾지못함)
☞ HTTP 500 = 스크립트 자체의 에러를 확인한다.(서버측의 Script 에러로서 asp, jsp, php소스확인)
☞ 1019 Error = 한글 인코딩 에러(WML소스 상에 에러가 있음)
☞ 1002에러 = 해당 문서의 파일 사이즈가너무 큼
☞ Network Not available = [Setting]의 맨 아래가 Network Down으로 되어 있는지 확인

★ 보안의 주요보완기능?
식별 및 인증 기능, 접근 통제 기능, 무결성 기능, 비밀성 기능, 감사 기록 및 추적 기능, 보안 관리

★ 보안 사고 유형 >>> 바이러스, 웜, 트로이 목마, 몰래 잠입하기, 눈속임

★ 방화벽의 종류
* 패킷 필터링 방식 : OSI모델의 네트워크 계층과 전송 계층에서 패킷을 필터링하여 패킷 필터링 규칙을 사용하여 접근을 허용하거나 금지한다.
* 서킷 게이트웨이 : OSI모델의 전송 계층과 세션 계층에서 구현되며 내부망과 외부망이 직접 연결되는 것을 방지하고, SOCKS 프로토콜 등 서킷 프로토콜을 사용한 시스템만 SOCKS가 제공하는 접근 규칙에 따라 허용하거나금지된다.
* 애플리케이션 게이트웨이 방식 : OSI모델의 용용 계층에 구현되면 서비스 요구자의 IP주소 또는 포트를 근거로 접근을 허용하거나 금지한다.
* 하이브리드 : 패킷 필터링과 애플리게이션 게이트웨이 방식을 혼합한 방식으로 네트워크 카드를 통하여 TCP/IP커널로 들어온 패킷은 커널의 패킷 필터링 모듈에 의해 접근이 허용되거나 금지된다.


★ 단답형....
* 메일=mailto
* 시간설정=timer
* 입력되는 내용의 정렬방식 = align(left, center, right)
* 사용자로부터 입력을 받음 = input
* 문자 좌우스크롤 동작 = marquee

출처 : http://blog.naver.com/arielicarus/40010079692
2008/02/22 10:27 2008/02/22 10:27

댓글을 남겨주세요.

[로그인][오픈아이디란?]

wml과 hdml의 문법비교

Posted at 2008/02/21 18:31 // in 웹프로그래밍™/WAP, Mobile // by 블루비

<wml과 hdml의 문법비교>



* 이곳의code는 html의 경우 대문자로 wml의 경우는 소문자로 tag를 처리해 주어 up4.0에서 실제 test하였음

*폰은 LG 011 Wever-net을 이용하여 test하였습



1. desk의 비교

- wap에서 desk는 file과 같은 의미이다.

- desk에서 선언된 내용(event등 )은 전체 desk내의 모든 card에 영향을 주지만

card내에서 동일한 내용을 다시 선언 할 경우 card의 내용이 우선권을 갖는다.

- ex) hdml

<hdml version=3.0>

<action type=accept label="home" task=go dest="index.hdml">

<card>

:

</card>

</hdml>



- ex) wml

<wml>

<template onenterforward="url" onenterbackward="url" ontimer="url">

Centent

</template>

</wml>

- onenterforward는 <go>tag를 쓴 경우 특정 url로 이동

onenterbackward는 <prev>tag를 쓴 경우 특정 url로 이동

ontimer는 일정 시간 후 특정 url로 이동









2. 카드의 사용

- card란 단말기(wap 폰등)에 한번에 보여주는 단위로

하나의 desk는 1~여러개의 card로 구성되어 있다.

- hdml의 경우 4종류의 카드가 있다.

display : 화면에 내용을 뿌려주는 card

nondisplay : html의 hidden과 같은 기능을 갖는 card

choice : html의 select의 기능을 갖은 card

entry : 값을 받기 위한 card


-wml은 카드의 분류가 있는 것이 아니라 그 card에 쓰여지는 element에 의해

속성이 결정된다.





1) 카드간 이동
- hdml
<hdml version=3.0>
< display name=card1>
<action type=accept task=go dest=#card2>
Press OK to display the next screen.
</display>
< display name=card2 >
this screen display the content of Card2.
</display>
</hdml>





- wml
<?xml version="1.0" encoding="ks_c_5601-1987"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN"
"http://www.wapforum.org/DTD/wml_1.1.xml">


<wml>
<card>
<do type="accept">
<go href="#card2"/>
</do>
<p>
Press OK to display the next screen.
</p>
</card>
<card id="card2">
<p>
this screen display the content of Card2.
</p>
</card>
</wml>






2) Choice 카드 vs Select element


- hdml의 choice card
<hdml version=3.0>
<action type=soft1 label="home" task=go dest="index.hdml">
<choice name=lang key=lang1>
<action type=accept label="선택" task=go dest= mode_select.asp?lang= $lang1 >
<center> 언어를 선택하세요?
<ce value= "eng">영어
<ce value= "jap">일어
</choice>
</hdml>


- 위에서 각각의 list가 서로 다른 url (or page, card)로 이동 할 경우
<choice>
<ce task = go dest = mode_select1.asp?lang1=Eng>영어
<ce task = go dest = mode_select2.asp?lang1=Jap>일어
</choice>
- soft1(option) = soft key를 누른 경우(단말기의 왼쪽 하단에 나타나는 지시글)
- accept = accept key를 누른 경우 (단말기의 오른쪽 하단에 나타나는 지시글)
- key 는 해당 choice card의 요소(ce)를 선택했을 때 선택된 값을 나타낸다.






- wml의 select element


<?xml version="1.0" encoding="ks_c_5601-1987"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN"
"http://www.wapforum.org/DTD/wml_1.1.xml">
<wml>
<template>
<do type="option" label="Home">
<go href = "index.wml"/>
</do>
</template>

<card>
<do type="accept" label="Back">
<go href = "mode_select.asp" method="post">
<postfield name="Lang1" value="$sel_Lang"/>
</go>
</do>
<p>
언어를 선택하세요?
<select name="sel_Lang" >
<option value="Eng">영어</option>
<option value="Jap">일어</option>
</select>
</p>
</card>
</wml>


- 참고 : hdml은 get방식이고 wml은 post방식을 이용한 것임, nt에서 asp를 이용한 경우임
- hdml은 asp에서 많이 사용한던 방식대로 상용하면 됨.
- 값을 받은 변수를 이용하는 경우 hdml,wml모두 “$이름”을 이용한다.




3) 선택에 따라 서로 다른 Page로 이동하기


- hdml [choice문 get방식]


<hdml version=3.0>
<action type=soft1 label="back" task=go dest=index.hdml>
<choice>
<action type=accept label="선택">
[검색방법 선택]
<ce task=go dest="a.asp?val=k">a.asp로 이동
<ce task=go dest="b.asp?val=k">b.asp로 이동
</choice>
</hdml>



- wml [select문 get방식]


<?xml version="1.0" encoding="ks_c_5601-1987"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN"
"http://www.wapforum.org/DTD/wml_1.1.xml">
<wml>
<template>
<do type="option" label="back">
<go href = "index.wml"/>
</do>
</template>

<card>
<p>
언어를 선택하세요?
<select name="sel_lang" >
<option onpick="a.asp?val=k">a.asp로 이동</option>
<option onpick="b.asp?val=k">b.asp로 이동</option>
</select>
</p>
</card>
</wml>




4) 뒤로 이동하기(back)


-hdml
<hdml version=3.0>
<display>
<action type="accept" task="prev">
hello
</display>
</hdml>


-wml
<?xml version="1.0" encoding="ks_c_5601-1987"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN"
"http://www.wapforum.org/DTD/wml_1.1.xml">
<wml>
<card>
<do type="accept">
<prev/>
</do>
<p>
hello
</p>
</card>
</wml>












3. 값 전달하기 (ASP에서)


1) post방식


- hdml
<hdml version=3.0>
<entry key=UsrName>
<action type="accept" task=go method=post
postdata="name=$UsrName" dest="get_value.asp">
당신의 이름은:
</entry>
</hdml>
-key에는 “/,-,_”등의 기호가 들어가면 않됨


-get_value.asp
<% Response.ContentType="text/x-hdml;charset=ks_c_5601-1987" %>
<% szName = Request("name") %>
<hdml version=3.0>
<display>
당신의 이름은 <%=szName%>입니다.
</display>
</hdml>


- wml


<?xml version="1.0" encoding="ks_c_5601-1987"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN"
"http://www.wapforum.org/DTD/wml_1.1.xml">
<wml>
<card>
<do type="accept">
<go href = "get_value.asp" method="post">
<postfield name="UsrName" value="$Usr_name"/>
</go>
</do>
<p>
당신의 이름은?
<input name="Usr_name"/>
</p>
</card>
</wml>






get_value.asp
<% Response.ContentType="text/vnd.wap.wml"
Response.Write (" <?xml version='1.0' encoding='ks_c_5601-1987'?> "&_
"<!DOCTYPE wml PUBLIC '-//WAPFORUM//DTD WML 1.1//EN'
'http://www.wapforum.org/DTD/wml_1.1.xml'> ")
%>
<%
szName = Request("UsrName")
%>
<wml>
<card>
<p>
당신의 이름은 <%=szName%>입니다.
</p>
</card>
</wml>


- 받는 값이 여러개인 경우는 input tag의 수만큼 postfild의 수를 늘려 주면 됨.




-2개 이상의 값을 넘기기
<hdml version=3.0>
<action type="accept" task=go method=post postdata="name=$usrname&id=$usrid "
dest="get_value.asp">
<entry key=usrname>
<action type ="soft1" label="go" task=go dest="#id">
당신의 이름은:
</entry>


<entry name=id key=usrid>
당신의 id:
</entry>
</hdml>

get_value.asp
<% response.contenttype="text/x-hdml;charset=ks_c_5601-1987" %>
<%
szname = request("name")
szid = request("id")
%>
<hdml version=3.0>
<display>
당신의 이름은 <%=szname%>입니다.
당신의 id는 <%=szid%>입니다.
</display>
</hdml>




2) get 방식


- hdml
<hdml version=3.0>
<entry key=UsrName>
<action type="accept" task=go dest="get_value.asp?name=$UsrName">
당신의 이름은:
</entry>
</hdml>
-key에는 “/,-,_”등의 기호가 들어가면 않됨


-get_value.asp
<% Response.ContentType="text/x-hdml;charset=ks_c_5601-1987" %>
<% szName = Request.QueryString("name") %>
<hdml version=3.0>
<display>
당신의 이름은 <%=szName%>입니다.
</display>
</hdml>




- wml


<?xml version="1.0" encoding="ks_c_5601-1987"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN"
"http://www.wapforum.org/DTD/wml_1.1.xml">
<wml>
<card>
<do type="accept">
<go href = "get_value.asp?Usrname=$Usr_name">
</go>
</do>
<p>
당신의 이름은?
<input name="Usr_name"/>
</p>
</card>
</wml>






get_value.asp
<% Response.ContentType="text/vnd.wap.wml"
Response.Write (" <?xml version='1.0' encoding='ks_c_5601-1987'?> "&_
"<!DOCTYPE wml PUBLIC '-//WAPFORUM//DTD WML 1.1//EN'
'http://www.wapforum.org/DTD/wml_1.1.xml'> ")
%>
<%
szName = Request.QueryString("UsrName")
%>
<wml>
<card>
<p>
당신의 이름은 <%=szName%>입니다.
</p>
</card>
</wml>


- get에서 두 개의 값을 전달할 경우
wml에서는 "&"이 아니라 "&amp;"로 연결해야 한다.(반드시 그런 것은 아님..)
ex) <go href="sel_loc.asp?loc=$sel_Lang&amp;Lang1=<%=szLang%>"/>
hdml : <task=go dest=sel_loc.asp?loc=$sel_Lang&Lang1=<%=szLang%> >


- html
<hdml version=3.0>
<action type="accept" task=go dest="get_value.asp?name=$usrname&id=$usrid">


<entry key=usrname>
<action type ="soft1" label="go" task=go dest="#id">
당신의 이름은:
</entry>

<entry name=id key=usrid>
당신의 id:
</entry>
</hdml>


get_value.asp


<% response.contenttype="text/x-hdml;charset=ks_c_5601-1987" %>
<%
szname = request.querystring("name")
szid = request.querystring("id")
%>
<hdml version=3.0>
<display>
당신의 이름은 <%=szname%>입니다.
당신의 id는 <%=szid%>입니다.
</display>
</hdml>






4.<img>처리
- hdml
<hdml version=3.0>
<action type=soft1 label="home" task=go dest="index.hdml">
<display>
웃는얼굴
<img alt=":-)" icon="smileyface">
</display>
</hdml>

- hdml에서 src="URL" icon="icon명“

- wml
<?xml version="1.0" encoding="ks_c_5601-1987"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN"
"http://www.wapforum.org/DTD/wml_1.1.xml">
<wml>
<card>
<p>
웃는얼굴
<img alt=":-)" localsrc="smileyface" src=""/>
</p>
</card>
</wml>

- src=“url"을 쓴 경우는 localsrs="icon명”생략가능 반대의 경은 반드시 src=""를 쓸것














II. WML에 관해


1. < a >와 < go >의 차이
- <a href= " " title="" >는 문장에서 일정 문장을 선택 시 link적용


<card>
<p>
<a href="a.asp" title="kk">kkk</a>
<a href="b.asp" title="qq">qqq</a>
</p>
</card>

* up.sdk-4b에서는 title은 해당 list를 선택 시 브라우저의 좌측 하단에 나타나는 문구임
* 실제 단말기 마다 차이가 있음.

- <go href=" " >는 일정 형식안에서(ex do문) event를 가했을 때 이동 link적용

<card>
<do type='accept' label='이동하기‘>
<go href="a.asp" />
</do>
</card>
* label은 a tag에서 tilte에 해당함




2. <>의 사용
- 모든 tag에서 "<"와 “>”는 받드시 tag명과 붙어 써야 한다.
<go href=""> : 사용가능
< go href=""> : Erroe
- wml에서 기본적으로 Tag는 모두 소문자로 쓴다. (대분자 일 경우 error발생)



3. 반드시 속성의 값을 나타낼 때는 “”를 이용한다.
<go href=#Eng/> : ERROR → <go href="#Eng"/>




4.<p>
<card> tag안에서 text를 사용할 때 반드시 <p>...</p>를 사용해야 한다.




5.<do type=" ">
do 문에서 type을 이용해 핸드폰의 번호를 이용해서 해당 내용을 선택할 수 있다.


<card>
<do type='van.skmn1' label='이동하기‘>
<go href="a.asp" />
</do>
</card>

* van,skmn1은 1번, van,skmn2는 2번을 누를수있다.
* 이것은 011폰에서 나타나며 up.sdk-4b에서는 조금 이상하게 나타 납니다.

실용예 - 시뮬레이터에서는 단순히 select문을 이용하면 각각의 option들 앞에 번호가
생성되고 번호를 클릭하면 해당 내용에 따른 action(link, back등)을 실행할 수
있지만 실제 011폰에서는 다음과 같이 무식하게 짜야 번호를 이용할 수 있습니다.

- 시뮬레이터
<card>
<p>
<select name="sel_Lang" >
<option onpick="Choice.asp?Lang1=<%=szLang%>">비즈니스</option>
<option onpick="Choice.asp?Lang1=<%=szLang%>"> 생활회화</option>
<option onpick="Tip.asp?Lang1=<%=szLang%>">Today's Tip</option>
</select>
</p>
<do type="option" label="home">
<go href = "index.wml"/>
</do>
</card>


- 011휴대폰
<card>
<do type="vnd.skmn1" label="비즈니스">
<go href="sel_large.asp?Lang1=<%=szLang%>&amp;Gubun=b"/>
</do>
<do type="vnd.skmn2" label="생활회화">
<go href="sel_large.asp?Lang1=<%=szLang%>&amp;Gubun=g"/>
</do>
<do type="vnd.skmn3" label="Today's Tip">
<go href="Tip.asp?Lang1=<%=szLang%>"/>
</do>
<do type="options" label="home">
<go href = "index.wml"/>
</do>


</card>






III.기타 TIP


1.Img처리


그럼 포토샾을 이용하여 UP browser(UP SDK 4.0 Beta 1 기준)에서 이미지를 출력시켜 보겠습니다.


1) 서버(MS-IIS 4.0)의 마임타입을 셋팅합니다.
.wml text/vnd.wap.wml;charset=KS_C_5601-1987 (한글 셋팅)
.wmls text/vnd.wap.wmlscript (WMLscript 셋팅)
.wbmp image/vnd.wap.wbmp (wbmp이미지 셋팅)


2) UnWired.8bi 이라는 포토샾,페인트샾용 플러그인을 다운받습니다.
3) 위의 플러그인을 포토샾의 플러그인 디렉토리중 File Formats 이라는 플러그인 디렉토리에 넣습니다.
4) 포토샾을 실행합니다.
5) 파일열기 하면 Open File Formats 에 UnWired (*.WBM;*.WBM) 이라는 항목이 새로 생성되어 있
습니다. 만약 기존에 작업한 wbmp 파일이 있으면 이걸루 열면 되지요..
그러나, 우리는 지금 처음으로 하는거니깐... wbmp 파일이 당연히 없겠죠?
그래서 다른 파일을 여는걸루 하겠습니다.
적당한 크기의(127x127 pix가 기본입니다. 원본 이미지가 크면 사이즈를 이 이하로 줄여아 합니다.)
이미지를 엽니다. (bmp,gif 상관없습니다.)
6) 열린 이미지의 모드를 그레이스케일로 전환합니다.(중요)
7) Image>Adjust>Levels 메뉴나 또는 각자가 잘하는 방법을 사용하여 흑백을 반대로 전환합니다.
(UP browser에서는 명암이 포토샾 작업물과는 반대로 나오므로)
8) 그레이스케일모드로 바꾼 후에야 비트맵모드가 활성화 됩니다. 따라서 이제 비트맵모드로 다시 바꿉
니다. 비트맵모드로 전환해야만 wbmp로 만들수 있습니다.(중요)
9) Save As 하면 저장파일목록에 역시 UnWired (*.WBM;*.WBM) 항목이 추가되어 있습니다. 원하는
디랙토리로 저장 합니다.
10) 저장이 끝난후 탐색기로 가서 wbm 확장자를 wbmp 로 바꿔줘야 합니다. 포토샾에서는 wbm 으로
만 생성되는데 서버마임타입은 wbmp 이기 때문입니다.(중요)
11) 다 끝났습니다. 이제 원하는 WML 문서에 이미지파일의 경로를 삽입하고 UP browser로 문서를 부
르면 작업하신 wbmp이미지가 나오는걸 보실수 있습니다.




"이 플러그인이 깔려서 그렇게 된 것인지는 모르지만, 비트맵(그냥 흑백만 가능한 비트맵있죠?)으로 만들어지고 난 다음에 저장을 bmp확장자를 써서 저장을 해도 UP에뮬레이터에서 보입니다."


3.2 대의 버젼에서 이미지를 사용하실려면 흑백bmp 형식의 이미지를 사용하시면 됩니다. 윈도우의 그림판을 사용하시면 저장하는 부분에 흑백bmp 형식이 정의 되어잇습니다.
저는 그렇게 해서 성공했습니다. 특별한 설정은 필요없습니다.




2.timer


Timer 사용하기
<timer> 요소는 사용자가 설정한 특정 시간이 지난후 하나의 작업을 자동으로 수행한다.
Timer는 만은 응용이 가능하다. :


5초가 지난후 다음 카드로 가기.
매 15분마다 증권 정보 갱신.
중용한 데이터의 화면 출력 시간 제한.
<timer> 요소의 개요
<a href="url" <!-- required --> title="label">
...any valid combination of <text>, <br/> and <img> elements
</a>


1/10 초 단위의 시간을 default 값에 꼭 적어야 한다.
예를 들아 100은 10초를 나타낸다. 그리고, 0 은 사용할 수 없다.
아래 예제는 "Card 1, Wait 5 Second"를 출력하고 5초후에 "This is Card 2"를 줄력한다.


예제)


<wml>
<card id="card1" ontimer="#card2">
<timer value="50"/>
<p>
Card 1 <br/>
Wait 5 Second </p>
</card>
<card id="card2">
<p>
This is Card 2 </p>
</card>
</wml>




3. 일정시간후 특정 사이트 이동

<?xml version="1.0" encoding="ks_c_5601-1987" ?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/
DTD/wml_1.1.xml">
<wml>
<head>
<meta http-equiv="Cache-Control" content="max-age=0" forua="true"/>
</head>
<card ontimer="http://jupiter.3rsoft.com:80/cgi-auth/login.cgi?cmd=auth">
<timer value="10"/>
<p>
다음 페이지로 곧 바로 이동합니다.
</p>
</card>
</wml>

2008/02/21 18:31 2008/02/21 18:31

댓글을 남겨주세요.

[로그인][오픈아이디란?]

wml, mHTML, HDML and cHTML

Posted at 2008/02/21 18:13 // in 웹프로그래밍™/WAP, Mobile // by 블루비
=================== W M L ================================
<meta> : wml deck에 메타정보를 제공하며 데크에 대한 접근권한
정보와 함께 <head>내에 표시된다.

<template> : wml deck 전체에 미치는 동작을 정의하며 카드에서
정의되는 동작이 우선시 된다.
wml deck에서 template은 한 번만 사용가능.

<anchor> : 하이퍼링크 설정 태그로써 <a>태그와 용도가 비슷하며
<go>,<prev>,<refresh>,<noop>와 같은 태그와 쌍을 이룸.

<do> : <a>태그와 마찬가지로 링크태그 설정을 한다. 다른점은
기능키(accept key, soft key)를 설정할수 있다.

<go> : 버튼이 실행 되었을때 설정된 주소로 이동 또는 전화걸기
동작 수행을 한다.

<prev> : 이전으로 돌아가기 동작 수행.

<refresh> : 현재의 데크를 refresh하는 동작을 하며 <setvar>와
함께 사용하여 변수의 값을 재설정 할 수 있다.

<noop> : 특정카드(card)에 대해서 template의 영향을 받지않고
아무런 동작도 수행하지 않도록 설정 가능.

<onevent> : onevent의 타입속성에 따라 이벤트가 발생하도록
설정할 수 있다. timer가 종료되면 onevent수행

<timer> : 타이머의 시간을 설정, 일정한 시간이 지나면 자동적으로
태스크를 실행하도록 하는 태그.

<input> : 사용자로부터 텍스트 등을 입력받음.

<setvar> : <go>,<prev>,<refresh>태그를 사용한 태스크를 수행할때
변수에 변수값을 설정

<optgroup> : <select>태그 사이에서는 일반적으로 텍스트가 삽입되지
않기 때문에 group을 분류해 주는 기능을 한다.여러개의 옵션을 하나의
그룹으로 묶는 기능
-----------------------------------------------------------

======================mHTML===============================
<blink> : 문자를 점멸시켜 표시하는 범위 지정.

<marquee> : 문자 좌우 스크롤 동작

<hr> : 수평선 표시.

<table> : 표를 만들때 사용.

<input> : 사용자 입력.

<textarea> : 복수행에 걸치는 입력란 표시
-----------------------------------------------------------

=========================HDML============================
<wrap> : 새로운 줄에서 문장표시.

<line> : <display>카드내에서 문장이 휴대폰액정의 가로싸이즈보다
긴경우 5회 스크롤설정.

<display> : 문장이나 숫자들의 캐릭터,데이터를 화면에 표시

<nodisplay> : 변수를 초기화하거나 사용자의 요구없이 어떠한
작업을 해야할경우 사용하는 카드이며 화면상에 display되지 않는다.

<action> : 사용자가 선택할 기능키의 위치,동작(이동,전화걸기)설정.
보통 휴대폰의 하단 왼쪽,오른쪽에 표시.

<ce> : 휴대폰 화면에 숫자로 표시되며 선택동작을 수행한다.
숫자키패드로 선택된다.<choice>카드 내에서만 사용가능.

<a> : "[ ]"로 표시되는 링크옵션

<entry> : 문자나 숫자등의 데이터를 입력
ex) ID입력 : Aa112

<choice> : 여러개의 리스트중에서 사용자가 선택할 수 있는 카드.
------------------------------------------------------------

==================cHTML===================================
<div> : 한 줄 띄움 없이 라인 개행동작.

<pre> : 사용자가 정의한 탭 등..html태그를 화면에 그대로 표시하는
범위를 지정한다.

<plaintext> : <plaintext>사이의 모든 문자는 텍스트로 표시된다.

<dl> : 용어 리스트
<dt> : 용어의 제목
<dd> : 용어의 설명

<textarea> : 복수행에 걸치는 입력란을 표시
------------------------------------------------------------


출처 : http://blog.naver.com/ina618/140011869363
2008/02/21 18:13 2008/02/21 18:13

댓글을 남겨주세요.

[로그인][오픈아이디란?]