netvibes universal widget api - web conf...tippek és trükkök • olvasd el a teljes doksit,...

42
Netvibes Universal Widget API Bártházi András - http://dev.netvibes.com/ Web Konferencia - 2008. április 25. szombat

Upload: others

Post on 12-Jul-2020

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Netvibes Universal Widget API - Web Conf...Tippek és trükkök • Olvasd el a teljes doksit, dev.blogot az elejétől a végéig! • Készülj fel a különböző platformokra,

Netvibes Universal Widget API

Bártházi András - http://dev.netvibes.com/Web Konferencia - 2008. április 25. szombat

Page 2: Netvibes Universal Widget API - Web Conf...Tippek és trükkök • Olvasd el a teljes doksit, dev.blogot az elejétől a végéig! • Készülj fel a különböző platformokra,

Ez mi ez?

• Netvibes:személyre szabható információs központ

• UWA:univerzális formátum widgetek leírására, avagy egyszer elkészíted, “minden” platformon működik

Page 3: Netvibes Universal Widget API - Web Conf...Tippek és trükkök • Olvasd el a teljes doksit, dev.blogot az elejétől a végéig! • Készülj fel a különböző platformokra,

Mit mutatok be?

• Miből áll egy UWA widget?

• Hogyan működik egy UWA widget?

• Egy konkrét widget lefejlesztése:IndaFotó fotómegosztó szolgáltatás

Page 4: Netvibes Universal Widget API - Web Conf...Tippek és trükkök • Olvasd el a teljes doksit, dev.blogot az elejétől a végéig! • Készülj fel a különböző platformokra,

Mik azok a widgetek?

• Kicsi, specializált programok

• Elérhetőek böngészőn keresztül:Netvibes, iGoogle, Live.com, YourMinis...

• Elérhetőek valamilyen telepített motorral: Vista Gadgets, Apple Dashboard, Yahoo! Widgets, Opera...

Page 5: Netvibes Universal Widget API - Web Conf...Tippek és trükkök • Olvasd el a teljes doksit, dev.blogot az elejétől a végéig! • Készülj fel a különböző platformokra,

Miért született meg az UWA?

• Nincs de-facto standard

• Minden oldal, widget motor a saját formátumát használja

• A W3C speci#káció fejlesztés alatt, de nem használható még

• Most kell valami megoldás

Page 6: Netvibes Universal Widget API - Web Conf...Tippek és trükkök • Olvasd el a teljes doksit, dev.blogot az elejétől a végéig! • Készülj fel a különböző platformokra,

Mit ígér az UWA?• Minden népszerűbb platformon működik, az

UWA modul bármilyen módosítása nélkül

• Ez ma: Netvibes, iGoogle, Live.com, Opera, Apple Dashboard, Windows Vista, Yahoo! Widgets, iPhone

• Hasonlít a MiniAPI-hoz, csak szigorúbb

• Könnyen tanulható, hiszen ismert, bizonyított standard eszközöket használ:XHTML/XML, JavaScript/Ajax, CSS

Page 7: Netvibes Universal Widget API - Web Conf...Tippek és trükkök • Olvasd el a teljes doksit, dev.blogot az elejétől a végéig! • Készülj fel a különböző platformokra,
Page 8: Netvibes Universal Widget API - Web Conf...Tippek és trükkök • Olvasd el a teljes doksit, dev.blogot az elejétől a végéig! • Készülj fel a különböző platformokra,

UWA widget

• Egy statikus XHTML fájl, valid XML

• UTF-8 kódolású

• Netvibes névtérrel egészül ki az XHTML:xmlns:widget=“http://www.netvibes.com/ns/”

Page 9: Netvibes Universal Widget API - Web Conf...Tippek és trükkök • Olvasd el a teljes doksit, dev.blogot az elejétől a végéig! • Készülj fel a különböző platformokra,

UWA widget

• Egy UWA widget:

• HTML váz

• meta leíró elemek

• widget:preferences

• stílus de#níciók

• script

• alaphelyzeti HTML tartalom

Page 10: Netvibes Universal Widget API - Web Conf...Tippek és trükkök • Olvasd el a teljes doksit, dev.blogot az elejétől a végéig! • Készülj fel a különböző platformokra,

HTML váz• Mint egy weboldal:

Page 11: Netvibes Universal Widget API - Web Conf...Tippek és trükkök • Olvasd el a teljes doksit, dev.blogot az elejétől a végéig! • Készülj fel a különböző platformokra,

Meta leíró elemek• általános HTML és egyedi elemek is:

Page 12: Netvibes Universal Widget API - Web Conf...Tippek és trükkök • Olvasd el a teljes doksit, dev.blogot az elejétől a végéig! • Készülj fel a különböző platformokra,

widget:preferences• egyedi, a widget beállítási lehetőségeit leíró

UWA elemek:

Page 13: Netvibes Universal Widget API - Web Conf...Tippek és trükkök • Olvasd el a teljes doksit, dev.blogot az elejétől a végéig! • Készülj fel a különböző platformokra,

stílus de#níciók• teljesen szokványos stílus leírók:

Page 14: Netvibes Universal Widget API - Web Conf...Tippek és trükkök • Olvasd el a teljes doksit, dev.blogot az elejétől a végéig! • Készülj fel a különböző platformokra,

script• A konkrét működést leíró, megszokott

JavaScript:

Page 15: Netvibes Universal Widget API - Web Conf...Tippek és trükkök • Olvasd el a teljes doksit, dev.blogot az elejétől a végéig! • Készülj fel a különböző platformokra,

alaphelyzeti HTML tartalom

• ez is teljesen szimpla:

Page 16: Netvibes Universal Widget API - Web Conf...Tippek és trükkök • Olvasd el a teljes doksit, dev.blogot az elejétől a végéig! • Készülj fel a különböző platformokra,

Hogyan működik egy (UWA) widget?

• Információ beszerzése, kommunikáció

• Információ feldolgozása

• Információ megjelenítése

Page 17: Netvibes Universal Widget API - Web Conf...Tippek és trükkök • Olvasd el a teljes doksit, dev.blogot az elejétől a végéig! • Készülj fel a különböző platformokra,

Információ beszerzése, kommunikáció

• http://dev.netvibes.com/doc/uwa_speci#cation/using_javascript_and_ajax

• UWA.Data.getFeed(url, callback)

• UWA.Data.getXml(url, callback)

• UWA.Data.getJson(url, callback)

• UWA.Data.getText(url, callback)

• UWA.Data.request(url, request)

Page 18: Netvibes Universal Widget API - Web Conf...Tippek és trükkök • Olvasd el a teljes doksit, dev.blogot az elejétől a végéig! • Készülj fel a különböző platformokra,

Információ feldolgozása

• JavaScript alapokon, “semmi különös”

Page 19: Netvibes Universal Widget API - Web Conf...Tippek és trükkök • Olvasd el a teljes doksit, dev.blogot az elejétől a végéig! • Készülj fel a különböző platformokra,

Információ megjelenítése• A dokumentum HTML tartalmának

manipulációja alapvetően DOM-mal:

• widget.body = a widget befoglaló HTML eleme

• widget.createElement(“div”)

• widget.body.appendChild(item)

• widget.body.innerHTML = “Szöveg”; !!!

Page 20: Netvibes Universal Widget API - Web Conf...Tippek és trükkök • Olvasd el a teljes doksit, dev.blogot az elejétől a végéig! • Készülj fel a különböző platformokra,

Információ megjelenítése

• Template-ekkel, Control-okkal:http://dev.netvibes.com/doc/uwa_templates

• Data grid, E-mail list, Feed list, Rich list, $umbnailed list, Pager

• TabView

• Title Highlight

Page 21: Netvibes Universal Widget API - Web Conf...Tippek és trükkök • Olvasd el a teljes doksit, dev.blogot az elejétől a végéig! • Készülj fel a különböző platformokra,

Események lekezelése

• http://dev.netvibes.com/doc/uwa_speci#cation/using_javascript_and_ajax

• widget.* = function() {}

• onLoad, onRefresh, onResize, onSearch, onResetSearch, onKeyboardAction

Page 22: Netvibes Universal Widget API - Web Conf...Tippek és trükkök • Olvasd el a teljes doksit, dev.blogot az elejétől a végéig! • Készülj fel a különböző platformokra,

Tippek és trükkök• Olvasd el a teljes doksit, dev.blogot az elejétől a

végéig!

• Készülj fel a különböző platformokra, használj szabványos és platformfüggetlen JS-t, CSS-t

• Minél több dolog kerüljön a widgetbe (gyors betöltődés)

• Ne használj id-t, mert lehet, hogy egy oldalon többször is megjelenik egy widgeted!

Page 23: Netvibes Universal Widget API - Web Conf...Tippek és trükkök • Olvasd el a teljes doksit, dev.blogot az elejétől a végéig! • Készülj fel a különböző platformokra,

Tippek és trükkök

• A függvényeidet tegyed egy a widget neve alapján elnevezett objektumba:var Widgetem = {};Widgetem.display = function(){};

• Kódolj angolul, ha segítséget kell kérned, jóval könnyebben fogják megérteni a kódod külföldiek

Page 24: Netvibes Universal Widget API - Web Conf...Tippek és trükkök • Olvasd el a teljes doksit, dev.blogot az elejétől a végéig! • Készülj fel a különböző platformokra,

Tippek és trükkök

• Fejlessz élesben a Netvibes.com-on egy üres fülön.

• Fejlesztéskor inline, cache nélkül add hozzá az oldalhoz a widgetet.

• Amíg nem implementálod a widget.onRefresh függvényt, a widget refresh gombja újratölti a kódod, nem kell a teljes oldalt újratölteni

Page 25: Netvibes Universal Widget API - Web Conf...Tippek és trükkök • Olvasd el a teljes doksit, dev.blogot az elejétől a végéig! • Készülj fel a különböző platformokra,

IndaFotó widget• Cél #1 - beállítást célzó üzenet megjelenítése

Page 26: Netvibes Universal Widget API - Web Conf...Tippek és trükkök • Olvasd el a teljes doksit, dev.blogot az elejétől a végéig! • Készülj fel a különböző platformokra,

.showMessage()

• Létrehozunk egy (tetszőleges nevű) függvényt.

• widget.body.innerHTML-lel felépítjük az üzenetet

Page 27: Netvibes Universal Widget API - Web Conf...Tippek és trükkök • Olvasd el a teljes doksit, dev.blogot az elejétől a végéig! • Készülj fel a különböző platformokra,

widget.onLoad• De#niáljuk a widget.onLoad függvényt, és

meghívjuk innen függvényünket:

Page 28: Netvibes Universal Widget API - Web Conf...Tippek és trükkök • Olvasd el a teljes doksit, dev.blogot az elejétől a végéig! • Készülj fel a különböző platformokra,

widget:preferences

• Létrehozunk egy widget:preferences blokkot a fájl elején:

Page 29: Netvibes Universal Widget API - Web Conf...Tippek és trükkök • Olvasd el a teljes doksit, dev.blogot az elejétől a végéig! • Készülj fel a különböző platformokra,

onLoad• Ha már ki van töltve az “Elemek” rész, akkor

nem az üzenetet kell megjeleníteni. Egyből dolgozzuk is fel és tároljuk le az “Elemek”-et.

Page 30: Netvibes Universal Widget API - Web Conf...Tippek és trükkök • Olvasd el a teljes doksit, dev.blogot az elejétől a végéig! • Készülj fel a különböző platformokra,

.initTabs()• Írjuk meg az előbb meghívott fül inicializáló

részt. Ennek is bármi lehetett volna a neve.

Page 31: Netvibes Universal Widget API - Web Conf...Tippek és trükkök • Olvasd el a teljes doksit, dev.blogot az elejétől a végéig! • Készülj fel a különböző platformokra,

.onTabChange()• Ha változik a tab (vagy ha épp nekiindulunk),

azt le kell kezelni:

Page 32: Netvibes Universal Widget API - Web Conf...Tippek és trükkök • Olvasd el a teljes doksit, dev.blogot az elejétől a végéig! • Készülj fel a különböző platformokra,

.display()

• És ha megvan a feed, akkor meg is kell jeleníteni azt az aktuális tab tartalmaként - melyik div is az?

Page 33: Netvibes Universal Widget API - Web Conf...Tippek és trükkök • Olvasd el a teljes doksit, dev.blogot az elejétől a végéig! • Készülj fel a különböző platformokra,

.display()

• Lapozás template:

Page 34: Netvibes Universal Widget API - Web Conf...Tippek és trükkök • Olvasd el a teljes doksit, dev.blogot az elejétől a végéig! • Készülj fel a különböző platformokra,

.display()• Képek listája:

Page 35: Netvibes Universal Widget API - Web Conf...Tippek és trükkök • Olvasd el a teljes doksit, dev.blogot az elejétől a végéig! • Készülj fel a különböző platformokra,

.display()

• És a maradék, adjuk hozzá a tab tartalmához ezeket:

Page 36: Netvibes Universal Widget API - Web Conf...Tippek és trükkök • Olvasd el a teljes doksit, dev.blogot az elejétől a végéig! • Készülj fel a különböző platformokra,

widget.onRefreh()

• Kezeljük le a frissítést, esetünkben elég egyszerűen:

Page 37: Netvibes Universal Widget API - Web Conf...Tippek és trükkök • Olvasd el a teljes doksit, dev.blogot az elejétől a végéig! • Készülj fel a különböző platformokra,

CSS• hogy jól nézzenek ki a képek, balra %oatoljuk a

listájukat, és adunk egy fekete keretet mindegyiknek:

Page 38: Netvibes Universal Widget API - Web Conf...Tippek és trükkök • Olvasd el a teljes doksit, dev.blogot az elejétől a végéig! • Készülj fel a különböző platformokra,

További információk• http://dev.netvibes.com

• http://dev.netvibes.com/doc/

• http://dev.netvibes.com/forum/

• http://dev.netvibes.com/blog/

• http://eco.netvibes.com

• Munka? :)http://dev.netvibes.com/doc/jobs

Page 40: Netvibes Universal Widget API - Web Conf...Tippek és trükkök • Olvasd el a teljes doksit, dev.blogot az elejétől a végéig! • Készülj fel a különböző platformokra,

Jövő

• Már most újdonságok a Ginger kapcsán:

• widget.readOnly - ha publikus oldalon jelenik meg a widget, ne lehessen módosítani

• widget.addStar - bármilyen link + szöveg pár hozzáadható a Netvibes hírfolyamhoz is

• bővebben a dev.blogban:http://dev.netvibes.com/blog/

Page 41: Netvibes Universal Widget API - Web Conf...Tippek és trükkök • Olvasd el a teljes doksit, dev.blogot az elejétől a végéig! • Készülj fel a különböző platformokra,

Jövő

• Jön, jön, jön:

• OpenSocial

• és egyéb meglepetések

Page 42: Netvibes Universal Widget API - Web Conf...Tippek és trükkök • Olvasd el a teljes doksit, dev.blogot az elejétől a végéig! • Készülj fel a különböző platformokra,

Köszönöm!

• Kérdések?

• Keress meg emailben:

• andras kukac netvibes pont com