ASP.NET usnadňují tvorbu mobilních aplikací prostřednictvím tříd z prostoru System.Web.UI.MobileControls. V tomto článku si ukážeme velmi jednoduchou aplikaci, která bude automaticky funkční jak v běžném prohlížeči na PC, tak v mobilním telefonu prostřednictvím protokolu WAP.

Na rozdíl od suchého „Hello World“ jsem pro příklad zvolil zajímavou, přímo revoluční myšlenku firmy Swatch, která prosazuje používání takzvaného internetového času. Ve stručnosti jde o to, že tento čas je na celém světě stejný. Je nezávislý na časových pásmech a je odvozen od tzv. Biel Mean Time (BMT), což je zimní středoevropský čas – tedy UTC + 1 hodina. Čas celého dne je rozdělen na 1 000 dílů, jeden díl tak odpovídá 2,64s. Například 13:00 letního času v Praze odpovídá hodnotě @500 internetového času. Protože nejsou reflektována časová pásma, důležitou součástí je také údaj o datu (dni), celý údaj o času tedy může vypadat například takto: @678 @d03.07.03.

Připravenou ukázku si můžete prohlédnout jak v prohlížeči, tak třeba mobilním telefonem (do prohlížeče v telefonu je třeba přepsat úplnou adresu ukázky). Také si můžete stáhnout soubory ukázky.

V naší aplikaci tedy zjistíme čas UTC prostřednictvím statické vlastnosti UtcNow třídy DateTime, metodou AddHours() k němu přidáme jednu hodinu a matematickou trojčlenkou vypočítáme z aktuálního počtu sekund a počtu sekund celého dne (24*60*60) internetový čas. Nakonec ještě zformátujeme řetězec, obsahující datum dne pro zobrazení ve tvaru internetového času, a obojí můžeme zobrazit.

Výpočet internetového času a jeho zobrazení doprogramujeme do „kostry“ mobilní stránky NetTime.aspx:

<%@ Page Language=“C#“ EnableViewState=“False“ EnableSessionState=“False“ Inherits=“System.Web.UI.MobileControls.MobilePage“ %>
<%@ Register TagPrefix=“Mobile“ Namespace=“System.Web.UI.MobileControls“ Assembly=“System.Web.Mobile“ %>
<script RunAt=“server“>
void Page_Load (Object sender, EventArgs e)
{
  DateTime BMT = DateTime.UtcNow.AddHours(1);
  int NetTime = (1000*(BMT.Second + (BMT.Minute*60) + (BMT.Hour*3600)))/86400;
  LblNetTime.Text = „@“ + NetTime.ToString();
  LblNetDate.Text = „@d“ + BMT.ToString(„dd.MM.yy“);
}
</script>
<Mobile:Form Id=“FrmTime“ EnableViewState=“false“ RunAt=“server“>
<Mobile:Label Text=“Internet Time“ RunAt=“server“ />
<Mobile:Label Id=“LblNetTime“ RunAt=“server“ />
<Mobile:Label Id=“LblNetDate“ RunAt=“server“ />
</Mobile:Form>

Klasickou ASP.NET stránku nám zde rozšiřuje System.Web.UI.MobileControls.MobilePage z prostoru názvů System.Web.UI.MobileControls, dále je zde zaregistrována Assembly System.Web.Mobile, díky které můžeme ve stránce využívat prvky pro mobilní zařízení.

Základním prvkem mobilní stránky je formulář – na rozdíl od běžné ASP.NET stránky jich může být ve stránce více a musí v ní být alespoň jeden. Do tohoto formuláře pak vkládáme další prvky (musejí být ve formuláři, nemohou být „volně loženy“) – labely, delší stránkovatelné texty, editační textová pole, odkazy, obrázky nebo třeba zvláštní povely pro vytáčení telefonního čísla. Obsahem formuláře může být běžný text, případně i omezená sada tagů – .NET Framework je pak při renderování přizpůsobuje dle zařízení na HTML, HDML nebo WML syntaxi.

Ve formuláři naší mobilní aplikace máme pouze dva labely, jeden pro zobrazení samotného internetového času a druhý pro zobrazení data internetového času. Obvyklým způsobem v obsluze události Page_Load jim potom nastavíme vlastnost Text a mobilní aplikace ukazující internetový čas je na světě. Díky ní si pak můžete bez obav sjednat schůzku třeba na @765 v New Yorku, aniž byste museli vlastnit speciální hodinky již zmíněné firmy.

Starší komentáře ke článku

Pokud máte zájem o starší komentáře k tomuto článku, naleznete je zde.

Žádný příspěvek v diskuzi

Odpovědět