Browserdetectie, WURFL / Tera-WURFL

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • SvMp
  • Registratie: September 2000
  • Niet online
Voor een project waarbij ik mobiele browsers wil ondersteunen, ben op zoek gegaan naar geschikte detectie. Topics over dit onderwerp zijn niet talrijk en al wat ouder. Ik ben erg benieuwd naar de ervaringen met Wurfl.

Tweakers.net maakt ook gebruik van Wurfl.

Mijn ervaringen:
Een XML-bestand van 15 MB lijkt mij erg zwaar, dus ik was benieuwd naar de performance. De Wurfl-website ( http://wurfl.sourceforge.net/ ) vind ik een puinhoop, ik kan er geen touw aan vast knopen. Wel een PHP-API gevonden daar. Testen was een drama, allemaal foutmeldingen. Ik kon het niet aan de gang krijgen.

Vervolgens Tera-WURFL bekeken: http://www.tera-wurfl.com
Die biedt de mogelijkheid om het XML-bestand met device-info in een database op te slaan, en uit te lezen. Overzichtelijke website, fatsoenlijke documentatie en draait als een zonnetje. Performance is goed.

Ik ben wel benieuwd hoe Tweakers.net en andere developers het doen: Wordt vooral Tera-WURFL gebruikt, de API van Wurfl zelf of heb je zelf iets ontwikkeld dat met de Wurfl-data werkt?

Ook heb ik nog de nodige vragen bij het trekken van conclusies. Je krijgt een enorme array met informatie over je device. Sommige dingen vind ik dubbel. Bijvoorbeeld html-ondersteuning. Perferred markup is op mijn Nokia E52 (moderne telefoon) HTML4, maar ook wordt aangegeven dat XHTML maximaal wordt ondersteund. Wordt HTML4 gezien als XHTML?
Verder het detecteren of het nou een mobiel apparaat is of niet. Is dat echt een kwestie van uitsluitend naar "is_wireless_device" kijken? De documentatie zegt dat laptops en PC's niet als wireless_device worden gezien, maar hoe zit het met bijvoorbeeld tablets?

Acties:
  • 0 Henk 'm!

  • kwaakvaak_v2
  • Registratie: Juni 2009
  • Laatst online: 02-06 12:29
Het hangt er ook vanaf wat je wilt ondersteunen, soms kan een media query ook al voldoende zijn als je enkel op CSS nivo dingen wilt afvangen.

En voor een ander project waarbij ik een simpele detectie nodig had om enkel vast te stellen of iets een iphone/android ding was, heb ik http://detectmobilebrowsers.mobi/ gebruikt. Om eigenlijk dezelfde reden als jij ook al geeft. De documentatie van wurfl is echt om te huilen zo ondoorzichtig.\

Driving a cadillac in a fool's parade.


Acties:
  • 0 Henk 'm!

Anoniem: 180316

Ik weet niet of je beschikking hebt over PHP maar daarin kan je toch gewoon de User Agent opvragen (ergo: browser)?

Acties:
  • 0 Henk 'm!

  • mithras
  • Registratie: Maart 2003
  • Niet online
De nieuwe versie van het Zend_Framework (v.a. 1.11.0) heeft UserAgent ondersteuning met WURFL, DeviceAtlas en TeraWurfl. Het is een mooiere api dan die van Wurlf zelf.

Voor meer informatie, check de documentatie: http://framework.zend.com...tp.user-agent-device.html

Acties:
  • 0 Henk 'm!

  • YopY
  • Registratie: September 2003
  • Laatst online: 10:07
Anoniem: 180316 schreef op maandag 15 november 2010 @ 13:39:
Ik weet niet of je beschikking hebt over PHP maar daarin kan je toch gewoon de User Agent opvragen (ergo: browser)?
Dat kan, maar dan zul je alsnog zelf aan de hand van de user agent een lijst moeten maken met wat voor resolutie die browser heeft, welke (X)HTML en CSS die ondersteunt, etcetera. Vandaar Wurfl, daarmee hoef je dat zelf niet te doen en kun je eenvoudig(er) opvragen welke mogelijkheden de huidige bezoeker zijn browser heeft.

Acties:
  • 0 Henk 'm!

  • SvMp
  • Registratie: September 2000
  • Niet online
Inderdaad, als je bijvoorbeeld alleen maar iPad's wilt detecteren, dan ga je simpelweg je user-agent string uitlezen. Maar om in brede zin mobiele apparatuur te ondersteunen moet je zaken zoals resolutie en html-support weten.

Acties:
  • 0 Henk 'm!

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 13:29

crisp

Devver

Pixelated

Wij gebruiken gewoon de PHP API van WURFL zelf, en daarvan de MySQL Persistence Provider - oftewel: de WURFL XML file wordt ingelezen en opgeslagen in een MySQL database. Daarbovenop hebben we een eigen MemCached implementatie gemaakt die specifieke device-informatie (enkel die informatie die we nodig hebben) cached op device-id basis.

Nu hebben we wel aardig wat zelf geknutseld aan de PHP API zelf, maar bijna al die wijzigingen en verbeteringen zijn voor zover ik kan zien al grotendeels in de nieuwste versie van de API verwerkt.

Voor het specifiek detecteren van een mobile device kijken we inderdaad in eerste instantie naar 'is_wireless_device'. Om te kijken of een useragent ook (goede) HTML support heeft kijken we naar 'xhtml_support_level' (minimaal 3 - zie http://wurfl.sourceforge.net/help_doc.php)

Intentionally left blank


Acties:
  • 0 Henk 'm!

  • Freeaqingme
  • Registratie: April 2006
  • Laatst online: 11-07 12:39
Iemand heeft al ZF gespammed, dus dat hoef ik niet meer te doen :(.

Waar ik wel benieuwd naar ben - hoewel lichtelijk offtopic - is wat jullie van de bruikbaarheid vinden van 't ZF gedeelte wat dit betreft, zeker gelet op grotere websites (crisp, lees je dit? :D).

Wat 't antwoord voor de TS betreft: Ik heb hier een paar dagen terug nog naar gekeken, en hierbij lijkt WURFL inderdaad marktleider te zijn - met reden. Dat je dit zou gebruiken lijkt me daarom buiten kijf te staan.

No trees were harmed in creating this message. However, a large number of electrons were terribly inconvenienced.


Acties:
  • 0 Henk 'm!

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 13:29

crisp

Devver

Pixelated

Freeaqingme schreef op dinsdag 16 november 2010 @ 23:15:
Iemand heeft al ZF gespammed, dus dat hoef ik niet meer te doen :(.

Waar ik wel benieuwd naar ben - hoewel lichtelijk offtopic - is wat jullie van de bruikbaarheid vinden van 't ZF gedeelte wat dit betreft, zeker gelet op grotere websites (crisp, lees je dit? :D).
Ja, ik lees mee :P

Voor zover ik kan beoordelen doet Zend eigenlijk precies hetzelfde als wij doen; ook zij hebben een laag bovenop de WURFL PHP API gebouwd (maar ondersteunen daarnaast ook de TeraWurfl API of DeviceAtlas API).
Wat 't antwoord voor de TS betreft: Ik heb hier een paar dagen terug nog naar gekeken, en hierbij lijkt WURFL inderdaad marktleider te zijn - met reden. Dat je dit zou gebruiken lijkt me daarom buiten kijf te staan.
WURFL is inderdaad de meest uitgebreide database, maar zaligmakend is het zeker niet. Zo zitten er veel inconsistenties in de database zelf waar rebranded devices nogal eens als 'root' worden aangemerkt, en is de matching vaak nog verre van perfect: versieverschillen door een Android update leiden vaak tot een foute match en ook verschillen in locale-strings in de UA behoeven vaak extra manuele patches (zeker voor nl-localised devices - gezien het feit dat Nederland een klein land is zitten specifieke nl-versies vaak niet in de database - komt dat vaak voor). Ook is veel data 'redundant' in de WURFL database zelf (op 'child'-niveau wordt vaak data expliciet herhaals die al op 'parent'-niveau is gedefinieerd - een 'cleanup' van de XML op die basis zou al 30% in filesize schelen).

Nu hebben wij al veel patches aangeleverd voor de API zelf, en het doet me goed te zien dat daar ook wel wat mee gedaan wordt, maar toch lijkt de doorontwikkeling van de API erg langzaam te gaan. Ook met het oog op de snelle ontwikkeling van mobiele devices, os'en en browsers zijn er denk ik op korte termijn toch slimmere heuristics noodzakelijk om te voorkomen dat de WURFL database zelf niet uit z'n voegen barst en meer (onbelangrijke) _subs gaat bevatten dan daadwerkelijke devices.

[ Voor 5% gewijzigd door crisp op 16-11-2010 23:47 ]

Intentionally left blank

Pagina: 1