Man ir nācies piekabināt parastām lapām to WML analogus, lai mobilo ierīču lietotāji varētu dikti jau nu jauki skatīties. Un, lai cik tas nebūtu dīvaini, mani vienmēr ir kretinējis tas, ka jāveido ir vai nu wap.saits.lv
vai saits.lv/wap
. Nenoliegšu, ka vienmēr tā arī esmu darījis :) Bet tagad no more.
Teju vai 100 procentos gadījumu var iztikt ar saits.lv
. Viss, kas mums ir jāizdara, ir izvēle — ko klientam piedāvāt — WML vai XHTML saturu. Vai varbūt Atom, vai HDML?
Jebkurš browseris, sūtot serverim kādu pieprasījumu, norāda satura veidus, kurus viņš saprot, izmantojot Accept
HTTP hederus. Mūs interesē tieši Accept
. Daži piemēri:
- Firefox/0.8
- application/x–shockwave–flash, text/xml, application/xml, application/xhtml+xml, text/html;q=0.9, text/plain;q=0.8, video/x–mng, image/png, image/jpeg, image/gif;q=0.2, */*;q=0.1
- Opera 7.51
- application/x–shockwave–flash, text/xml, application/xml, application/xhtml+xml, text/html;q=0.9, text/plain;q=0.8, video/x–mng, image/png, image/jpeg, image/gif;q=0.2, text/css, */*;q=0.1
- Nokia 6600
- application/prs.s2.putty–config, audio/wav, audio/x–wav, audio/basic, audio/x–au, audio/au, audio/x–basic, video/mp4, video/mpeg4, video/3gpp, application/vnd.rn–realmedia, audio/AMR–WB, audio/AMR, application/sdp, audio/sp–midi, audio/x–beatnik–rmf, audio/midi, application/java–archive, text/vnd.sun.j2me.app–descriptor, application/vnd.wap.wmlc, text/vnd.wap.wml, application/vnd.wap.wbxml, application/vnd.wap.wmlscriptc, text/html, application/vnd.wap.xhtml+xml, application/xhtml+xml, Psiloc/irRemote.ccf, Psiloc/irRemote.lirc, , audio/x–mp3, application/mp3skin, music/mod, music/xm, music/it, music/s3m, application/x–wallet–appl.user–data–provision, application/vnd.met.ticket, application/vnd.symbian.install, audio/x–pn–realaudio–plugin, audio/x–pn–realaudio, audio/mpegurl, audio/x–mpegurl, text/x–co–desc, application/vnd.oma.dd+xml, application/vnd.nokia.ringing–tone, text/vnd.symbian.wml.dtd, application/java, video/3gp, audio/rmf, audio/x–rmf, audio/x–midi, application/x–java–archive, application/vnd.oma.drm.message, application/x–x509–ca–cert, text/plain, text/X–vCard, text/calendar, text/x–vCalendar, text/css, image/*
- IE 6
- */*
Tad nu tā. Ņemsim par piemēru Nokia 6600. No visas šīs MIME tipu gūzmas mums ir nepieciešami tikai tie, kuri ir tekstuāli. T.i. — text/…
. Mums paliek:
text/vnd.sun.j2me.app–descriptor text/vnd.wap.wml text/html text/x–co–desc text/vnd.symbian.wml.dtd text/plain text/X–vCard text/calendar text/x–vCalendar text/css
Secību jaukt nedrīkst. Tie tipi, kuri ir sākumā, ir tie, kurus tālrunis pieņemtu vislabprātāk.
Starp citu. Par secību. Tipam var tikt norādīts arī t.s. quality factor, kurš, rupji runājot, norāda uz svarīgumu un ir robežās no nulles, līdz viens. Ja tas nav norādīts, tā vērtība ir viens. Tas tiek norādīts sekojoši: text/vnd.wap.wml;q=0.5
. Attiecīgi, jo mazāks šis quality factor, jo mazāk tālrunis vēlas norādīto satura veidu. Piemērs:
text/vnd.wap.wml;q=0.5, text/html;q=0.8, text/html+xml
Tad pēc svarīguma šis saraksts tiek izkārtots sekojošā secībā:
text/html+xml text/html text/vnd.wap.wml
Vēl viens moments. Tips var tikt norādīts kā text/*
, kas nozīmē, ka tālrunis pieņem jebkuru tekstu. Neskatoties uz neko, šāds tips tiek novietots saraksta beigās. T.i., ja mums ir rinda text/*, */*, text/xml
, tad rezultātā mums būs text/xml, text/*, */*
.
Atgriezīsimies pie Nokia. Pēc kārtas ejot cauru mūsu sakārtotajam sarakstam, mēs skatāmies, ko varam piedāvāt šim tālrunim. Pirmais, ko ieraugām, ir text/vnd.sun.j2me.app–descriptor
. Nedz mēs zinām, kas tas ir, nedz kā to pasniegt. Ignorējam. Nākamais ir text/vnd.wap.wml
. Ahā! Tas takš ir WML! To mēs mākam, to mēs tūliņ, tūliņ. Un basta. Izsniedzam ierīcei WML kodu.
Ja nu mums neizdodas ierīcei piedāvāt to, ko jamā saprot, tad obligātā kārtā atgriežam HTTP kļūdu ar numuru 406, kas nozīmē not acceptable
.
Kaut kā tā. Ja esmu nepareizi izskaidrojis quality factor nozīmi, lūdzu labojiet mani. Ja vēl kaut ko ne tā, dariet to pašu.
1 Delfins @ 16:47 (2004. gada 08. septembris)
ū. pamācošs stāsts… :)
2 Pete @ 10:32 (2004. gada 09. septembris)
Ļoti laba viela pārdomām. Ļoti gribētos vairāk tamlīdzīgas infas.
3 taku @ 17:46 (2004. gada 20. oktobris)
Pirms gada http://laacz.lv/blog/2003/05/07/paspriek…
Tu rakstīji ka ar http accept padod savam xhtml application/xhtml+xml formātu (domāju arī pamēģināt to pašu). Vai ir kāds bargs iemesls, kāpēc Tu tomēr paliec pie vecā un xhtml padod text/html?
4 laacz @ 08:38 (2004. gada 21. oktobris)
Tāpēc, ka ar esošo SPP versiju nevaru 100% garantēt, ka saturs būs XHTML :) Tāpēc arī pagaidām padodu kā text/html. Bet viss mainās, kā zināms :)
5 vasja @ 12:35 (2004. gada 10. decembris)
da pasol ti duraks
6 UL @ 22:47 (2005. gada 18. janvāris)
text/vnd.sun.j2me.appdescriptor — to mēs, Lācz, mākam un zinām ;) (tas ir JAD), bet tas neattiecas uz šī tava posta ģenerālo tēmu.