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:
Nevýhody:
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.
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
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á.
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.