Guia de Webapp

Com encaixa l’aplicació web a l’intèrpret d’ordres

Una aplicació web es mostra a una vista web dins d’un contenidor web que s’executa com una aplicació de l’Ubuntu a l’entorn Ubuntu/Unity.

Fent una ullada més propera:

Al nivell més intern, hi ha una pàgina web que el desenvolupador identifica per una URL. La pàgina web és mostra i s’executa a una vista web de l’Oxide. L’Oxide és una vista web Blink/Chrome que està personalitzat per a l’Ubuntu. La vista ewb de l’Oxide s’executa i es mostra a un contenidor d’aplicació web. El contenidor d’aplicació web és l’entorn d’execució de l’aplicació que està integrat amb l’entorn Ubuntu/Unity.

Llançament

Podeu llançar una aplicació web des de la terminal amb:

webapp-container URL

Per exemple:

webapp-container https://www.ubuntu.com

Aquest formulari senzill funciona, però gairebé totes les aplicacions web també fan servir altres característiques, com ara contenció d’URL amb patrons d’URL com es descriu a sota.

Interfície d’usuari

Una aplicació web generalment omple l’espai sencer de la pantalla de l’aplicació, sense que li calgui els controls d’interfície d’usuari que es troben als navegadors estàndard.

En alguns casos són apropiats alguns controls de navegació, com ara botons Enrere i Endavant, o una barra d’adreces URL. Aquests controls s’afegeixen com arguments de la línia d’ordres:

  • --enable-back-forward Activa la visualització dels botons endavant i enrere a la barra d’eines (al peu de la finestra de la webapp)

  • --enable-addressbar Activa la visualització de la barra d’adreces (al peu de la finestra de l’aplicació web)

Patrons d’URL

Els autors d’aplicacions web sovint volen restringir la navegació a la pàgina web destí. És a dir, la persona desenvolupadora vol controlar les URL que es podin obrir a l’aplicació web (totes les altres URL s’obren al navegador). Això es fa amb patrons URL com a part de línia d’ordres de l’aplicació web.

Tot i així, moltes pàgines web usen pàgines que estan allotjades en llocs múltiples o que usen recursos externs i pàgines.

Tant el confinament com l’accés a URL externes especificades s’implementen amb patrons URL que es proveeixen com arguments al moment del llançament. Donem una ullada més propera.

Sense confinament per defecte

Per defecte, no hi ha confinament d’URL. Suposeu que llenceu una aplicació web sense cap patró i sols una URL d’inici de la manera següent:

webapp-container https://www.ubuntu.com

L’usuari pot navegar a qualsevol URL sense limitació. Per exemple, si cliquen al botó de Desenvolupament a la part superior, naveguen a developer.ubuntu.com, i es mostra a la webapp.

Pista: Podeu veure l’URL de la pàgina actual habilitant la barra d’adreces amb --enable-addressbar.

Confinament simple al lloc

Sovint volem confinar els usuaris al propi lloc. És a dir, si la pàgina web és www.ubuntu.com, pot ser útil confinar els usuari web sol a subpàgines de www.ubuntu.com. Això es fa afegint un patró URL comodí a l’ordre de llançament, de la manera següent:

webapp-container --webappUrlPatterns=https://www.ubuntu.com/* https://www.ubuntu.com
--webappUrlPatterns= indica que a continuació ve un patró

http://www.ubuntu.com/* és un patró. L’asterisc és un comodí que concorda amb totes les seqüències vàlides de caràcters finals (a la dreta) a una URL

Amb aquesta ordre de llançament i patró URL, l’usuari pot navegar i obrir qualsevol URL a l’aplicació web que comenci amb http://www.ubuntu.com/. Per exemple, poden clicar al botó del telèfon (http://www.ubuntu.com/phone) a la capçalera i s’obre a l’aplicació web, o el botó Tauleta (http://www.ubuntu.com/tablet). En canvi, si es clica Desenvolupament sobre la URL corresponent al navegador.

Pista: Assegureu-vos d’especificar completament el subdomini a la vostra URL inicial, és a dir, useu http://www.ubuntu.com en comptes de www.ubuntu.com. Si no s’especifica el subdomini es crearia una URL ambigua i s’introdueixen problemes de seguretat.

Patrons de comodí més complexos

Potser voleu limitar l’accés a únicament algunes subpàgines del vostre lloc des de dins de l’aplicació web. Això és fàcil amb patrons comodins. (Els enllaços a altres subpàgines s’obren al navegador.) Per exemple, el següent permet l’accés a www.ubuntu.com/desktop/features i www.ubuntu.com/phone/features mentre que no permet accés a www.ubuntu.com/desktop or www.ubuntu.com/phone:

webapp-container --webappUrlPatterns=https://www.ubuntu.com/*/features https://www.ubuntu.com

Patrons múltiples

Podeu usar patrons múltiples separant-los amb una coma. Per exemple, el següent permet accés sols a www.ubuntu.com/desktop/features and www.ubuntu.com/phone/features:

webapp-container --webappUrlPatterns=https://www.ubuntu.com/desktop/features,https://www.ubuntu.com/phone/features  https://www.ubuntu.com

Pista: Sovint calen patrons múltiples per assolir el comportament de confinament desitjat.

Addició d’un subdomini específic

Molts URL tenen un o més subdominis. (Per exemple, al següent, “developer” és el subdomini: developer.ubuntu.com.) Podeu permetre accés a un subdomini únic (i totes les seves subpàgines) amb un patró com aquest:

--webappUrlPatterns=https://developer.ubuntu.com/*

Tanmateix, generalment volem que l’usuari sigui capaç de tornar a la URL d’inici (i les seves subpàgines). Així, si la URL inicial és http://www.ubuntu.com, cal un segon patró:

--webappUrlPatterns=https://developer.ubuntu.com/*,https://www.ubuntu.com/*

Posant tot això junt, aquí podeu trobar un exemple que comença a http://www.ubuntu.com i permet la navegació a http://developer.ubuntu.com i subpàgines i enrere a http://www.ubuntu.com i subpàgines:

webapp-container --webappUrlPatterns=https://developer.ubuntu.com/*,https://www.ubuntu.com/*  https://www.ubuntu.com

Addició de subdominis amb un comodí

Algunes URL tenen subdominis múltiples. Per exemple, www.ubuntu.com té design.ubuntu.com, developer.ubuntu.com i més. Podeu afegir accés a tots els subdominis amb un comodí a la posició de subdomini:

webapp-container --webappUrlPatterns=https://*.ubuntu.com/*  https://www.ubuntu.com

Nota: Un asterisc a la posició de subdomini concorda amb qualsevol subdomini únic vàlid. Aquest patró únic és suficient per habilitar la navegació a qualsevol subdomini i subpàgines, incloent-hi cap enrere a la URL inicial (http://www.ubuntu.com) i les seves subpàgines.

Addició d’https

A vegades un lloc usa https per alguna de les seves URLs. Aquí podeu trobar un exemple que permet http i https com accés a dins de l’aplicació web a www.launchpad.net (i totes les subpàgines degudes al comodí):

webapp-container --webappUrlPatterns=https?://www.launchpad.net/* https://www.launchpad.net

Nota: el signe d’interrogació a http?. Això vol dir que el caràcter precedent (la «s») és opcional. Si es requereix sempre https, ometeu el signe d’interrogació.

Arguments de la línia d’ordres

El contenidor d’aplicació web accepta moltes opcions per afinar com allotja diverses aplicacions web.

Vegeu tota la ajuda amb:

webapp-container --help

Nota: Sols les opcions següents s’apliquen a l’Ubuntu convergit.:

--fullscreen Display full screen
--inspector[=PORT] Run a remote inspector on a specified port or 9221 as the default port
--app-id=APP_ID Run the application with a specific APP_ID
--name=NAME Display name of the webapp, shown in the splash screen
--icon=PATH Icon to be shown in the splash screen. PATH can be an absolute or path relative to CWD
--webappUrlPatterns=URL_PATTERNS List of comma-separated url patterns (wildcard based) that the webapp is allowed to navigate to
--accountProvider=PROVIDER_NAME Online account provider for the application if the application is to reuse a local account.
--accountSwitcher Enable switching between different Online Accounts identities
--store-session-cookies Store session cookies on disk
--enable-media-hub-audio Enable media-hub for audio playback
--user-agent-string=USER_AGENT Overrides the default User Agent with the provided one.

Opcions del Chrome (si no s’especifica cap, no es mostra cap chrome per defecte):

--enable-back-forward Enable the display of the back and forward buttons (implies --enable-addressbar)
--enable-addressbar Enable the display of a minimal chrome (favicon and title)

Nota: Les altres opcions disponibles són específics per a aplicacions web d’escriptori. Es recomana no usar-les més.

Sobreescriptura de la cadena de caràcter de l’agent d’usuari

Alguns llocs web comproven porcions específiques de la identitat del motor web, o sigui la cadena de caràcters de l’agent d’usuari, per ajustar la seva presentació o habilitar algunes característiques. Tot i que no és una pràctica recomanada, a vegades cal canviar la cadena de caràcters per defecte enviada pel contenidor web.

Per canviar la cadena de caràcters des de la línia d’ordres, useu l’opció següent:

--user-agent-string='<string>' Replaces the default user-agent string by the string specified as a parameter

Confinament de les dades del navegador

L’experiència de l’aplicació web està confinada i aïllada des del punt de vista de les dades del navegador. És a dir, les aplicacions web no accedeixen dades de cap altre navegadors instal·lat, com ara la història, galetes i d’altres. Altres navegadors del sistema no accedeixen les dades de l’aplicació web.

Emmagatzematge

S’admeten les següents opcions d’emmagatzematge: Local/Session Storage, IndexedDB i WebSQL obsolet. L’API FileSystem no està suportada perquè les aplicacions no poden accedir directament al sistema de fitxers.