Webapps ved hjælp af Chromium

Brugen af Webapps er ved at blive ganske populært. Det betyder blandt andet at man som udvikler, i stigende grad, ikke behøver at koncentrere sig om at understøtte specifikke styresystemer eller platforme, men generelle og åbne standarder. Det er til gengæld de udviklere der står for at udvikle netlæserne, der har til opgave at håndtere.

Det er dog ikke alle netlæsere der er lige godt forberedt til dette lille show. Mozilla Firefox har for eksempel ikke længere en modus til afvikling af webapplikationer.

Et af de bedste bud kommer fra Google, da man her til forskel fra de fleste andre netlæsere, har implementeret en “app” mode. Dette indebærer blandt andet at alle kontroller, faneblade og URL-linier ef slået fra. Bortset fra titlelinien, er det kun vinduesindholdet der vises.

Diaspora* som Webapp
Diaspora* som Webapp

Google Chrome er den bedst egnede netlæser til disse opgaver, men desværre kigger den brugeren lidt for meget over skulderen. Heldigvis er der et alternativ, fra samme familie. Chrome bruger nemlig koden fra Chromium projektet som base. Denne udgives ligeledes som et selvstændigt program, nemlig netlæseren Chromium, der er lidt mere beskyttende for brugeren og dennes privatliv. Chromium er at finde i de fleste distributioners, som for eksempel openSUSE, biblioteker.

Lad os oprette en programobjekt

Som et eksempel vil jeg her oprette et programobjekt til Instapaper. Dette er en tjeneste der gør det muligt at gemme hjemmesider, til senere læsning. Dette kan gøres ved hjælp af udvidelser til din favorit netlæser, for eksempel Mozilla Firefox og Google Chrome/Chromium har udvidelser. Men der findes også programmer til mobile enheder, såsom Android- og SailfishOS-enheder.

Først skal der oprettes en tekstfil med et beskrivende navn, der kan skelnes fra de andre programobjekt-filer. Den eneste regel er at den skal hedde “.desktop” til efternavn. Det kunne for eksempel være “instapaper.desktop”.

Indhold af programobjekt:

[Desktop Entry] Definerer filen som et programobjekt
Name Navn på programobjektet, der blandt andet benyttes i programmenuen.
Comment Her kan angives en kort beskrivelse af programobjektet.
Exec Kommando der skal eksekveres
Icon Alle objekter har brug for et ikon, her defineres stien til billefilen.
Type Her defineres typen af det der skal eksekveres, mulighederne er Application, Link og Directory
Categories Definerer kategorier til programmenuen.
Terminal Her defineres om prgrammet skal afvikles i en terminal (true) eller grafisk (false)

Som det måske kan anes af ovenstående er definitionen (For eksempel Name og Icon) versalfølsomt. Skrives det ikke helt korrekt, ignoreres det. Selve rækkefølgen af metadata er ligegyldig for fortolkningen, så længe Desktop Entry definitionen er øverst.

Et programobjekt til et Instapaper programobjekt kunne se således ud :


[Desktop Entry]
Comment=Instapaper is a tool for saving web pages to read later on
Exec=/usr/bin/chromium --window-position="100,100" --window-size="1080,825" --new-window --app="https://www.instapaper.com"
GenericName=Instapaper
Icon=/home/flywheel/Storage/Billeder/Andre/Ikoner/instapaper.jpg
Name=Instapaper
Terminal=false
Type=Application
Categories=Internet,Webapps

 

Kommando :
Først kigger vi på den kommando som programobjektet skal udføre.

/usr/bin/chromium --window-position="100,100" --window-size="1080,825" --new-window --app="https://www.instapaper.com"

/usr/bin/chromium Dette er kaldet af selve Chromium
–window-position=”100,100″ Dette er udgangspositionen for det tegnede vindue. Her er der defineret en margin, til skærmkanten, på 100 punkter.
–window-size=”1080,825″ Skærmens dimensioner er 1280*1024. Vinduets dimensioner er defineret således at der er en margin på 100 punkter, hele vejen rundt.
–new-window Webapplikationen afvikles i et nyt vindue
–app=”https://www.instapaper.com” Hjemmesiden Instapaper.com vises i app-modus.

 

Med hensyn til ikonet, så er det nogenlunde nemt at finde et ikon vis ens favorit søgemaskine og gemme filen lokalt. Med “Icon” angives stien til denne ikonfil.

Som et alternativ til dette programobjekt-mageri, kan man direkte indføre det som elementer i en dock-applikation, som for eksempel wbar, der nu i et års tid har været husets valg.

Her benyttes det samme ikon og kommando som ovenfor.

DR Live TV

En anden fin måde at benytte Chromiums app-modus er i forbindelse med Danmarks Radios Live-TV tjeneste. Chrome/Chromium er generelt konkurrenterne overlegne når det drejer sig om Video-fremvisning. Undertegnede har oprettet fem elementer i min wbar til en Programoversigt, DR1, DR2, DR3 og DR-K.

Live DR-K TV som Webapp
Live DR-K TV som Webapp

I midten af billedet lige ovenfor, ses midt i billedet afspilningsvinduet og helt ude til højre i wbar ses fem elementer med DR-ikoner. Den øverste er TV-Oversigten og herunder de fire TV-kanaler som Danmarks Radio udbyder live.

Den kommando som disse elementer er udstyret med, afviger kun fra den der blev gennemgået tidligere i denne roman, med den adresse som Chromium benytter. Både startposition og vindues-størrelse er beholdt. Afspilleren indretter sig efter afspilningsvinduets dimensioner.

TV-Oversigt http://www.dr.dk/tv/oversigt
DR1 http://www.dr.dk/tv/live/popup/dr1#/
DR2 http://www.dr.dk/tv/live/popup/dr2#/
DR3 http://www.dr.dk/tv/live/popup/dr3#/
DR-K http://www.dr.dk/tv/live/popup/dr-k#/

Adresserne i ovenstående tabel er det adressen til det pop-up vindue man kan fremkalde fra Danmarks Radios nye Live-TV tjeneste. Det gode ved denne fremgangsmåde er netop, at man kan manipulere størrelsen af afspilningsvinduet lige netop til den størrelse man ønsker. Til gengæld skal man så selv holde styr på programoversigten, men det kan kureres ved også at implementere en sådan, på samme vis. TV-Oversigten ses i øverste række af tabellen. Denne giver yderligere adgang til den almindelige Live afspiller via “SE NU (LIVE)” linket, for programmer der kan ses live og linket “SE PROGRAMMER” for dem der allerede er lagt i arkivet.

Henvisninger:

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *

eighteen − 14 =

Time limit is exhausted. Please reload the CAPTCHA.

This site uses Akismet to reduce spam. Learn how your comment data is processed.