Guida¶
Come la webapp si adatta nella shell¶
Una app Web viene visualizzata in una vista Web all’interno di un contenitore che viene eseguito come app di Ubuntu nella shell di Ubuntu/Unity.
Dando un’occhiata più da vicino:
Al livello più interno, c’è un sito web che lo sviluppatore identifica attraverso l’URL. Il sito Web viene renderizzato e viene eseguito in una webview Oxide. Oxide è una webview Blink/Chrome personalizzata per Ubuntu. La webview di Oxide viene eseguita e visualizzata nel contenitore webapp. Il webapp-container è il runtime dell’app eseguibile integrato con la shell di Ubuntu/unity.
Lancio¶
Ė possibile eseguire una webapp dal terminale con::
webapp-container URL
Per esempio::
webapp-container http://www.ubuntu.com
Questo semplice modulo funziona, ma quasi ogni webapp utilizza anche altre funzionalità, come il contenimento degli URL con pattern URL come descritto qui di seguito.
Interfaccia utente¶
Una webapp generalmente riempie l’intero spazio dello schermo dell’app, senza la necessità dei controlli dell’interfaccia utente presenti normalmente sui browser standard.
In alcuni casi i controlli di navigazione sono appropriati, come i pulsanti Indietro e Avanti o una barra degli indirizzi URL. Questi vengono aggiunti come argomenti della riga di comando:
`` –enable-back-forward`` Abilita la visualizzazione dei pulsanti back (indietro) e forward (avanti) nella barra degli strumenti (nella parte inferiore della finestra webapp)
`` –enable-address bar`` Abilita la visualizzazione della barra degli indirizzi (nella parte inferiore della finestra dell’app Web)
Modelli di URL¶
Webapp authors often want to contain browsing to the target website. That is, the developer wants to control the URLs that can be opened in the webapp (all other URLs are opened in the browser). This is done with URL patterns as part of the webapp command line.
Tuttavia, molte app Web utilizzano pagine ospitate su più siti o che utilizzano risorse e pagine esterne.
However, both containment and access to specified external URLs are implemented with URL patterns provided as arguments at launch time. Let’s take a closer look.
Vuoto per default¶
Per impostazione predefinita, non vi è alcun contenuto URL. Supponiamo di avviare una webapp senza schemi e solo un URL iniziale come questo ::
webapp-container http://www.ubuntu.com
L’utente può raggiungere qualsiasi URL senza limiti. Ad esempio cliccando il pulsante Sviluppatore nella parte in alto, si arriva a developer.ubuntu.com, e mostra la webapp.
Suggerimento: puoi vedere la URL della pagina attuale abilitando la barra degli indirizzi con --enable-addressbar.
Semplice contenuto al sito¶
Alcune volte si vuole contenere gli utenti nel sito stesso. Cioè, se il sito web è www.ubuntu.com, potrebbe essere utile contenere gli utenti di webapp solo per le sottopagine di www.ubuntu.com. Questo viene fatto aggiungendo un pattern URL con caratteri jolly al comando di avvio, come segue ::
webapp-container --webappUrlPatterns=http://www.ubuntu.com/* http://www.ubuntu.com
--Indirizzo Url del modello di webapp=indica il prossimo modellohttp://www.ubuntu.com/* is the pattern The asterisk is a wildcard that matches any valid sequence of trailing (right-most) characters in a URL
Con questo comando e il pattern URL, l’utente può navigare e aprire nella webapp qualsiasi URL che inizia con http://www.ubuntu.com/. Ad esempio, si può fare clic sul pulsante Telefono (http://www.ubuntu.com/phone) nel banner e si apre nella webapp o sul pulsante Tablet (http://www.ubuntu.com/tablet) . Ma facendo clic su Sviluppatore si apre l’URL corrispondente nel browser.
Tip: Make sure to fully specify the subdomain in your starting URL, that is, use http://www.ubuntu.com instead of www.ubuntu.com. Not specifying the subdomain would create an ambiguous URL and thus introduces security concerns.
More complex wildcard patterns¶
Potresti voler limitare dalla webapp l’accesso solo ad alcune sottopagine del tuo sito. Questo è facile con i caratteri jolly. (I collegamenti ad altre pagine secondarie sono aperti nel browser.) Ad esempio, quanto segue consente l’accesso a www.ubuntu.com/desktop/features e www.ubuntu.com/phone/features pur non consentendo l’accesso a www.ubuntu.com/ desktop o www.ubuntu.com/phone
webapp-container --webappUrlPatterns=http://www.ubuntu.com/*/features http://www.ubuntu.com
Modelli multipli¶
Puoi utilizzare modelli multipli separandoli con una virgola. Ad esempio, quanto segue consente l’accesso solo a www.ubuntu.com/desktop/features e www.ubuntu.com/phone/features ::
webapp-container --webappUrlPatterns=http://www.ubuntu.com/desktop/features,http://www.ubuntu.com/phone/features http://www.ubuntu.com
Suggerimento: spesso sono necessari modelli multipli per ottenere il comportamento di contenimento previsto .
Aggiungere un sottodominio specifico¶
Many URLs have one or more subdomains. (For example, in the following, «developer» is the subdomain: developer.ubuntu.com.) You can allow access to a single subdomain (and all of its subpages) with a pattern like this::
--webappUrlPatterns=http://developer.ubuntu.com/*
Tuttavia, generalmente si vuole che l’utente sia in grado di tornare all’URL iniziale (e alle sue sottopagine). Quindi, se l’URL di partenza è http://www.ubuntu.com, è necessario un secondo modello ::
--webappUrlPatterns=http://developer.ubuntu.com/*,http://www.ubuntu.com/*
Mettendoli insieme, ecco un esempio che avvia http://www.ubuntu.com e che consente la navigazione su http://developer.ubuntu.com e relative sottopagine e infine ritorno a http://www.ubuntu.com e sottopagine ::
webapp-container --webappUrlPatterns=http://developer.ubuntu.com/*,http://www.ubuntu.com/* http://www.ubuntu.com
Aggiunta di sottodomini con un carattere jolly¶
Alcuni URL hanno più sottodomini. Ad esempio, www.ubuntu.com ha design.ubuntu.com, developer.ubuntu.com e altro ancora. Puoi aggiungere l’accesso a tutti i sottodomini con un jolly nella posizione del sottodominio ::
webapp-container --webappUrlPatterns=http://*.ubuntu.com/* http://www.ubuntu.com
Nota: un asterisco nella posizione del sottodominio corrisponde a qualsiasi sottodominio singolo valido. Questo modello singolo è sufficiente per consentire la navigazione verso qualsiasi sottodominio e sottopagine, incluso l’URL iniziale (http://www.ubuntu.com) e le sue sottopagine.
Aggiungere https¶
Talvota un sito utilizza https per alcuni dei suoi URL. Ecco un esempio che consente a https e https come accesso all’interno della webapp di www.launchpad.net (e di tutte le sottopagine tramite l’uso del carattere jolly) ::
webapp-container --webappUrlPatterns=https?://http://www.launchpad.net/* http://www.launchpad.net
Nota: il punto interrogativo in https ?. Questo significa che il carattere precedente (la “s”) è facoltativo. Se https è sempre richiesto allora ometti il punto interrogativo.
Argomenti a linea di comando¶
Il container webapp accetta diverse opzioni per perfezionare il modo in cui ospita varie applicazioni web.
Vedi l’aiuto con ::
webapp-container --help
Nota: solo le seguenti opzioni si applicano ad Ubuntu convergente.
--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.
Opzioni chrome (se nessuna specificata, non viene mostrato chrome di defaul)::
--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: le altre opzioni disponibili sono specifiche per le webapp desktop. Si raccomanda di non usarle più.
Annullamento stringa User-Agent¶
Alcuni siti web controllano parti specifiche dell’identità del motore Web, ovvero la stringa User-Agent, per regolare la loro presentazione o abilitare certe funzionalità. Sebbene non sia una pratica consigliata, a volte è necessario modificare la stringa predefinita inviata dal contenitore webapp.
Per cambiare la stringa dalla riga di comando, utilizzare la seguente opzione::
--user-agent-string='<string>' Replaces the default user-agent string by the string specified as a parameter
Contenimento dati del browser¶
The webapp experience is contained and isolated from the browser data point of view. That is webapps do not access data from any other installed browser, such as history, cookies and so on. Other browser on the system do not access the webapp’s data.
Storage¶
Lo standard W3C permette alle app di utilizzare la memoria locale e il webapp container Oxide ne supporta i principali standard come: Memoria locale, Database indicizzati, WebSQL.