Webapp guide¶
Como o aplicativo web encaixa no intérprete de ordes¶
Un aplicativo web móstrase nunha vista web dentro dun recipiente de aplicativos web que funciona como un aplicativo Ubuntu no shell Ubuntu / Unity.
Botando unha ollada máis atenta:
At the innermost level, there is a website that the developer identifies by URL. The website is rendered and runs in a Qt WebEngine based webview. The webview is provided by the pre-installed Morph browser and automatically handles things like file dialogs (using ContentHub), downloads, permissions, etc.
Lanzamento¶
You can launch a webapp from the terminal with::
webapp-container URL
For example::
webapp-container https://www.ubuntu.com
This simple form works, but almost every webapp uses other features as well, such as URL containment with URL patterns as described below.
Interface do usuario¶
Un aplicativo web xeralmente enche todo o espazo da pantalla do aplicativo, sen a necesidade dos controis de interface de usuario que normalmente se atopan nos navegadores estándar.
In some cases some navigation controls are appropriate, such as Back and Forward buttons, or an address bar. These are enabled with command line arguments:
--enable-back-forwardEnable the display of the back and forward buttons in the toolbar (at the bottom of the webapp window)
--enable-addressbarEnable the display of the address bar (at the bottom of the webapp window)
Patróns URL¶
Os autores de Webapp a miúdo queren conter a navegación polo sitio web de destino. É dicir, o desenvolvedor quere controlar os URL que se poden abrir no aplicativo web (o resto de URL están abertos no navegador). Isto faise cos patróns de URL como parte da liña de comandos do aplicativo web.
Non obstante, moitos aplicativosweb utilizan páxinas aloxadas en varios sitios ou que utilizan páxinas e recursos externos.
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.
Sen conter por defecto¶
By default, there is no URL containment. Suppose you launch a webapp without any patters and only a starting URL like this::
webapp-container https://www.ubuntu.com
O usuario pode navegar a calquera URL sen limitacións. Por exemplo, se premen o aplicativo web.
Tip: You can see the URL of the current page by enabling the address bar with --enable-addressbar.
Contención sinxela do sitio¶
One often wants to contain users to the site itself. That is, if the website is www.ubuntu.com, it may be useful to contain webapp users only to subpages of www.ubuntu.com. This is done by adding a wildcard URL pattern to the launch command, as follows::
webapp-container --webappUrlPatterns=https://www.ubuntu.com/* https://www.ubuntu.com
--webappUrlPatterns=indicates a pattern is nexthttps://www.ubuntu.com/* is the pattern The asterisk is a wildcard that matches any valid sequence of characters in a URL
With this launch command and URL pattern, the user can navigate to and open in the webapp any URL that starts with https://www.ubuntu.com/. For example, they can click on the Phone button (https://www.ubuntu.com/phone) in the banner and it opens in the webapp, or the Tablet button (https://www.ubuntu.com/tablet). But, clicking Developer opens the corresponding URL in the browser.
Tip: Make sure to specify the protocol in your starting URL, that is, use https://www.ubuntu.com instead of www.ubuntu.com. Not specifying the protocol would create an ambiguous URL and thus introduce security concerns.
Patróns comodíns máis complexos¶
You might want to limit access to only some subpages of your site from within the webapp. This is easy with wildcard patterns. (Links to other subpages are opened in the browser.) For example, the following allows access to www.ubuntu.com/desktop/features and www.ubuntu.com/phone/features while not allowing access to www.ubuntu.com/desktop or www.ubuntu.com/phone:
webapp-container --webappUrlPatterns=https://www.ubuntu.com/*/features https://www.ubuntu.com
Patróns múltiples¶
You can use multiple patterns by separating them with a comma. For example, the following allows access only to 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
Consello: a miúdo son necesarios varios patróns para lograr o comportamento de contención previsto.
Engadindo un subdominio específico¶
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=https://developer.ubuntu.com/*
However, one usually wants the user to be able to navigate back to the starting URL (and its subpages). So, if the starting URL is https://www.ubuntu.com, a second pattern is needed::
--webappUrlPatterns=https://developer.ubuntu.com/*,https://www.ubuntu.com/*
Putting these together, here’s an example that starts on https://www.ubuntu.com and allows navigation to https://developer.ubuntu.com and subpages and back to https://www.ubuntu.com and subpages::
webapp-container --webappUrlPatterns=https://developer.ubuntu.com/*,https://www.ubuntu.com/* https://www.ubuntu.com
Engadindo subdominios cun comodín¶
Some URLs have multiple subdomains. For example, www.ubuntu.com has design.ubuntu.com, developer.ubuntu.com and more. You can add access to all subdomains with a wildcard in the subdomain position::
webapp-container --webappUrlPatterns=https://*.ubuntu.com/* https://www.ubuntu.com
Note: An asterisk in the subdomain position matches any valid single subdomain. This single pattern is sufficient to enable browsing to any subdomain and subpages, including back to the starting URL (https://www.ubuntu.com) and its subpages.
Adding http¶
Sometimes a site uses http for some of its URLs. In general this is unsafe and should be avoided, but here is an example that allows access to www.launchpad.net on both https and http inside the webapp (and all subpages due to the wildcard)::
webapp-container --webappUrlPatterns=https?://www.launchpad.net/* https://www.launchpad.net
Nota: o signo de interrogación en https ?. Isto significa que o carácter anterior (o “s”) é opcional. Se sempre se precisa https, omita o signo de interrogación.
Argumentos da liña de comandos¶
O recipiente webapp acepta moitas opcións para axustar como aloxa varios aplicativos web.
See all help with::
webapp-container --help
Note: Only the following options apply to converged Ubuntu.:
--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.
Chrome options (if none specified, no chrome is shown by default)::
--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: as outras opcións dispoñibles son específicas para aplicativos web de escritorio. Recoméndase non usalos máis.
Ignorar a cadea axente de usuario («User-Agent»)¶
Algúns sitios web comproban porcións específicas da identidade do motor web, tamén coñecida como a cadea User-Agent, para axustar a súa presentación ou activar certas funcións. Aínda que non é unha práctica recomendada, ás veces é necesario cambiar a cadea predeterminada enviada polo recipiente webapp.
To change the string from the command line, use the following option::
--user-agent-string='<string>' Replaces the default user-agent string by the string specified as a parameter
Confinamento dos datos do navegador¶
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 browsers on the system do not access the webapp’s data.
Almacenamento¶
Following storage options are supported: Local/Session Storage, IndexedDB and the deprecated WebSQL. FileSystem API is not supported because apps cannot access the filesystem directly.