Hirdetés

Új hozzászólás Aktív témák

  • Karma
    félisten

    Alapvetően jól képzelted el, erről van szó: adott egy többé-kevésbé komplex webalkalmazás, lokálisan vagy online megnyitva, amit egy natív mobilalkalmazás futtat egy beágyazott böngészőben. Platformonként változik, hogy milyen csatornán keresztül (ld. az előbbi InvokeScript WP-n, navigációt Androidon és iOS-en), de kommunikálhat a szkript is kifelé (ez pl. Androidon a legerősebb, mert közvetlenül ki tud hívni Java metódusokra).

    Lehet hackelni is, mint az előző kérdésvonulatban, de ha az ember nulláról épít hibridet, jobban jár ha megtervezi magának az interfészt előre :)

    Én egy olyan alkalmazásban használtam ilyen architektúrát, ahol a backenden generált tetszőleges tartalmú kérdőíveket (mini webalkalmazásokat) lehet generálni, a kliensek letöltik ezeket, és utána a felhasználók offline kitölthetik újra meg újra. A JS interfész ott jön a képbe, hogy a kitöltés eredményét ezen keresztül szivárog át a Java kódhoz, ami a tárolást és feltöltést kezeli.

    Huh, most nézem, hogy a közepe kicsit zanzás lett. Mobilon írtam, és nem vettem észre :P

    Szóval az első bekezdés vége ez akart lenni:

    Platformonként változik, hogy milyen csatornán keresztül tud a natív kód a JS felé szólni. WP-n mint láthattuk az InvokeScript metódus jó erre; Androidon és klasszikusan iOS-en(*) a "javascript:"-es sémára navigálás működött (ezzel példáloztam korábban).

    A szkriptek visszafelé is kommunikálhatnak egyébként, WP-n egy globális függvényt hívhat meg a JS; iOS-en az aktuális URL változását lehet figyelni; Androidon meg a legerősebb, mert közvetlenül ki tud hívni Java metódusokra – persze csak amiket a natív alkalmazás előre kiajánl a JS bridge-nek.

    (*): iOS7-en bejött a JavaScriptCore, ami elméletileg közvetlen összeköttetés a JS és Obj-C világ között. De erről nem tudok semmit.

Új hozzászólás Aktív témák