Jeg sidder i øjeblikket og udviklet på et mobilprojekt, hvor alt bliver skrevet i html og javascript, med PhoneGap/Cordova som mit hardware framework, hvilket også fungere som wrapper. Det betyder, at jeg med mine begrænsede evner til at programmere, har lettere ved at lave en iPhone app(som kan uploades i app store), hvilket er tilfældet i øjeblikket
Jeg har de sidste par uger siddet og arbejdet med et app-projekt der hedder Dagens ret,som der kommer en helt masse mere information på et tidspunkt, men det har betydet, at jeg efterhånden har fået en del erfaring med framworket.
Dele af app’en skal bruge indhold fra en database og filer, og da man kun har mulighed for at bruge html og javascript i Phonegap, er det derfor ikke muligt, at lave en php/c# side, som kan behandle og indsætte data. Måde til at omgå dette, er ved at bruge javascript til at indsætte dynamisk indhold fra en database, hvilket fungere fantastisk og er ret let ved hjælp af jQury, som har en indbygget ajax funktion.
Jeg har behov for at gemme dele af indholdet i en lokal database, således app’en ikke hele tiden skal hente nyt indhold, samtidig har jeg også brug for at nogle information kun skal indtastes en gang. Dette har betydet, at jeg har arbejdet med localStorage, som er en html5 funktion, det gør det muligt at gemme data i browseren og som understøttes af alle nyere browser(og mobil browsere). Det har virket fantastisk når jeg har testet det i Chrome og Safari på min computer, men der begyndte at opstå fejl, når jeg brugte det på min iPhone, hvilket jeg ikke forstod. Da det som nævnt, skal være en iPhone app, var det underordnet, om det virkede i browseren, og jeg måtte derfor undersøge, hvorfor det ikke virkede på telefonen. Det viste sig, at Apple i version 5.1 af deres styresystem iOS(som bruges på iPhone/iPad) har valgt, at fjerne understøttelsen af localstorage, som en sikker og stabil måde, at gemme data i en app, hvilket var problematisk for mig, med den måde jeg havde skrevet koden på.
Efter at brugt et par timer på at google og læse om problematikken, kom jeg frem til en løsning, som en venlig bruger af PhoneGap har udviklet, og som virker: PERSISTENT LOCALSTORAGE NATIVE SOLUTION for phonegap. Apple har valgt at fjerne understøttelsen af localStorage og openDatabase pga. al data skal kunne opbevares, som en del af deres iCloud løsning, hvilket ikke er/var tilfældet, hvis der bruges localStorage.
Så har du udviklet eller udvikler du en WebApp eller en app der gør brug af localStorage, som skal bruges på enheder med iOS 5.1, bør du være opmærksom på dette issue – håber du har sparet et par timer, hvis du er kommet frem til denne blog-post
PS. Her er et lille sneak peek på Dagens Ret – glæder mig ekstremt meget, til at fortælle mere om det!













