WURFL (Wireless Universal Resource File) är ett open source-projekt som jobbar för att göra det enklare att mobilanpassa webbsidor. WURFL består egentligen av en xml-fil med samlad information om en stor mängd mobiler. En sajtbesökares User Agent String kan sedan jämföras mot filen för att t.ex. få reda på om en mobiltelefon används och därefter ge sajten ett utseende som passar besökaren bäst.
I .NET kan du även använda det inbyggda Request.Browser.IsMobileDevice, men det är långtifrån fulltäckande. WURFL är bättre på att identifiera enheter och rekommenderas av mobiForge.
Här kommer en liten guide för hur du kan använda WURFL i .NET.
Enkelt kodexempel (i C#) för att se om användaren surfar med mobil enhet:
if(d == null)
{
d = new deviceFileProcessor(HttpContext.Current.Server.MapPath(“wurfl.xml”));
HttpContext.Current.Cache.Insert(“wurfl”, d, new CacheDependency(HttpContext.Current.Server.MapPath(“wurfl.xml”)));
}
capabilitiesGetter cg = new capabilitiesGetter(ref d);
cg.prepareNavigatorModelCapabilities(HttpContext.Current.Request);
return bool.TrueString.ToLower().Equals(cg.getCapability(“is_wireless_device”));
}
Förutom “is_wireless_device” finns en mängd olika nyckelord för att hämta ut egenskaper kring enheten och webbläsaren. Du kan ta reda på om användaren har joystick eller touchscreen, skärmupplösning, bild- och css-stöd mm. Här hittar du alla nyckelord för enhetsegenskaper.
Som du kanske lade märke till i koden ovan så cachas deviceFileProcessor. Wurfl.xml är en stor fil och man vill inte läsa in den onödigt många gånger. Helst bara när din webbapp startar upp eller då du uppdaterar xml-filen. Följande rader kan alltså placeras i Application_Start i Global.asax:
Förutom ovanstående kan man även spara resultatet av IsMobileUser() i Session (förslagsvis i Session_Start i Global.asax).
Baserat på resultatet av IsMobileUser() kan du sedan skapa ett annorlunda utseende på sajten för mobila användare genom att byta MasterPage. Detta görs smidigast genom att låta sidorna ärva från en basklass som innehåller följande kod:
if (IsMobileUser())
MasterPageFile = “~/MasterPages/MobileMasterPage.master”;
}
Lycka till!
PS1. Se ett annat kodexempel av Adrian.
PS2. Du kan läsa mer om mobil utveckling bland mina tidigare inlägg i kategorin.
[tags]wurfl, mobilt, .net, programmering, webbutveckling, c#[/tags]
Heisan,
Vi er i ferd med aa lansere den nye .Net API.
Det kommer til aa ta noe faa extra dager foer det blir publisert paa WURFL website.
Hvis det haster, du kan ta kontakt med meg off-line og faa den nye .Net WURFL API allrerede i dag.
email min er passani (at) eunet dot no
Luca
Allright! Thanx for the information, Luca!