PhoneGap pro Windows Phone


Jedna z možností jak vytvářet aplikace pro mobilní zařízení je využití HTML5 a spouštění aplikace přes webový prohlížeč. Takovéto řešení má své výhody, ale také své problémy:

Výhody:

  • Funguje na více typech zařízení
  • Lepší dostupnost vývojářů využívajících kombinaci HTML + CSS + Javascript

Nevýhody:

  • Zařízení musí být online
  • Veškerá data pro aplikaci musí pocházet ze stejného zdroje (domény) jako aplikace
  • Aplikace nemůže přistupovat na lokální zdroje telefonu
  • Takto vytvořenou aplikaci nemůžete publikovat na Marketplace

Nevýhody, které zdánlivě převyšují výhody, je však poměrně snadné odstranit díky jednoduchému triku. Stačí vytvořit nativní aplikaci, která v sobě obsahuje pouze komponentu webového prohlížeče WebBrowser a zajistit uložení webové aplikace do lokálního úložiště, tedy do IsolatedStorage. Webová aplikace, pak funguje i v případě, kdy zařízení není on-line, protože je uložena lokálně. V tomto případě je také možné přistupovat k informacím z různých domén, protože se neaplikují restrikce na cross-domain komunikaci.

Pokud potřebujete vyvolat z webové aplikace událost v nativní aplikaci, stačí zavolat Javascript funkci window.external.notify(<data>), která v ovládacím prvku WebBrowser, tedy v nativní aplikaci, vyvolá událost ScriptNotify. Pokud potřebuje nativní aplikace vyvolat akci ve webové aplikaci, tak stačí zavolat metodu InvokeScript ovládacího prvku WebBrowser a jako parametr předat jméno Javascript funkce ve webové aplikaci s případnými parametry.

Abyste nemuseli všechny tyto věci řešit sami, můžete využít projekt PhoneGap, který vše řeší za vás a je pro Windows Phone momentálně dostupný ve verzi Beta.

Postup instalace

  • Nainstalujte si Windows Phone SDK.
  • Stáhněte si zdrojové kódy PhoneGap WP7 z GitHub.
  • Zdrojové kódy se stáhnou jako zip archiv, který si rozbalte na libolné místo ve vašem počítači.
  • Ve staženém archivu je soubor GapAppStarter.zip.
  • Tento soubor (GapAppStarter.zip) zkopírujte do adresáře %userprofile%\Documents\Visual Studio 2010\Templates\ProjectTemplates.
  • Spusťte Visual Studio 2010.
  • Otevřete okno pro nový projekt (File – New – Project…).
  • Vyberte si Visual C# a najděte šablonu GapAppStarter. Můžete také využít pole pro hledání šablon.

clip_image002

  • Do nově vytvořeného Solution přidejte projekt WP7GapClassLib, který je součástí zdrojových kódu, které jste stáhli z GitHub.
  • Na tento projekt přidejte referenci z vašeho nového projektu GapAppStarter.

clip_image003

Vlastní aplikaci pak vyváříte jako webovou aplikaci v adresáři www, který najdete v projektu vytvořeném ze šablony GapAppStarter.

Další informace najdete v článku Announcing PhoneGap for Windows Phone Mango.

Štěpán

Comments (2)

  1. Euphoric says:

    Není náhodou jedním z požadavků na umístění Marketplace "Nesmí jen otevírat webovou stránku."?

    Tohle mi to dost připomíná.

  2. Ať hledám jak hledám omezení na to, že by Windows Phone aplikace nesměla otevírat webovku jsem nenašel. Kompletní podmínky jsou zde – skvělé čtení do postele před spaním ;) msdn.microsoft.com/…/hh184843(v=VS.92).aspx

    f.