WebAPKs unter Android

Wenn der Nutzer Ihre progressive Web-App auf Android-Geräten dem Startbildschirm hinzufügt, generiert Chrome automatisch eine APK für Sie, die wir manchmal als WebAPK bezeichnen. Durch die Installation über ein APK kann Ihre App im App-Launcher und in den App-Einstellungen von Android angezeigt werden und eine Reihe von Intent-Filtern registrieren.

Wenn Sie eine PWA auf Android installieren, wird die progressive Web-App nicht nur dem Startbildschirm des Nutzers hinzugefügt. Chrome generiert und installiert automatisch ein spezielles APK Ihrer App. Wir bezeichnen dieses manchmal als WebAPK. Durch die Installation über ein APK kann Ihre App im App-Launcher und in den App-Einstellungen von Android angezeigt werden. Außerdem können Sie eine Reihe von Intent-Filtern registrieren.

Zum Generieren des WebAPKs werden das Web-App-Manifest und andere Metadaten von Chrome berücksichtigt. Wenn eine Aktualisierung des Manifests erkannt wird, muss Chrome ein neues APK generieren.

Android-Intent-Filter

Wenn eine Progressive Web-App unter Android installiert wird, werden eine Reihe von Intent-Filtern für alle URLs im Bereich der App registriert. Wenn ein Nutzer auf einen Link klickt, der sich im Bereich der App befindet, wird die App geöffnet und nicht in einem Browser-Tab.

Sehen Sie sich die folgende Teil-manifest.json an:

"start_url": "/",
"display": "standalone",

Wenn eine Web-App, die diese Funktion nutzt, über den App-Launcher gestartet wird, wird sie als eigenständige App ohne Browser-Chrome geöffnet.https://example.com/

Das WebAPK würde die folgenden Intent-Filter enthalten:

<intent-filter>
  <action android:name="android.intent.action.VIEW" />
  <category android:name="android.intent.category.DEFAULT" />
  <category android:name="android.intent.category.BROWSABLE" />
  <data
    android:scheme="https"
    android:host="example.com"
    android:pathPrefix="/" />
</intent-filter>

Wenn der Nutzer in einer installierten App auf einen Link klickt, der mit https://example.com/read beginnt, wird dies vom Intent abgefangen und in der Progressive Web App geöffnet.

scope verwenden, um Intent-Filter einzuschränken

Wenn Ihre Progressive Web App nicht alle URLs auf Ihrer Website verarbeiten soll, können Sie Ihrem Web-App-Manifest die Property scope hinzufügen. Die Property scope weist Android an, Ihre Web-App nur zu öffnen, wenn die URL mit origin + scope übereinstimmt. So können Sie festlegen, welche URLs von Ihrer App verarbeitet und welche im Browser geöffnet werden sollen. Das ist hilfreich, wenn sich Ihre App und andere Nicht-App-Inhalte in derselben Domain befinden.

Sehen Sie sich die folgende Teil-manifest.json an:

"scope": "/app/",
"start_url": "/app/",
"display": "standalone",

Wenn die App über den App-Launcher gestartet wird, wird https://example.com/app/ als eigenständige App ohne Browser-Chrome geöffnet.

Wie zuvor enthält das generierte WebAPK einen Intent-Filter, aber mit einem anderen android:pathPrefix-Attribut im AndroidManifest.xml des APK:

<intent-filter>
  <action android:name="android.intent.action.VIEW" />
  <category android:name="android.intent.category.DEFAULT" />
  <category android:name="android.intent.category.BROWSABLE" />
  <data
    android:scheme="https"
    android:host="example.com"
    android:pathPrefix="/app/" />
</intent-filter>

Sehen wir uns einige Beispiele an:

Do

https://example.com/app/ – innerhalb von /app/

Do

https://example.com/app/read/book – innerhalb von /app/

Don'ts

https://example.com/help/ – nicht in /app/

Don'ts

https://example.com/about/ – nicht in /app/

Weitere Informationen zu scope, was passiert, wenn Sie es nicht festlegen, und wie Sie es verwenden können, um den Umfang Ihrer App zu definieren, finden Sie hier.scope

Berechtigungen verwalten

Berechtigungen funktionieren genauso wie bei anderen Web-Apps und können nicht bei der Installation angefordert werden. Stattdessen müssen sie zur Laufzeit angefordert werden, idealerweise nur, wenn Sie sie wirklich benötigen. Fragen Sie beispielsweise nicht beim ersten Laden nach der Kameraberechtigung, sondern erst, wenn der Nutzer versucht, ein Bild aufzunehmen.

Speicher und App-Status verwalten

Auch wenn die progressive Web-App über ein APK installiert wird, verwendet Chrome das aktuelle Profil zum Speichern von Daten. Die Daten werden nicht getrennt gespeichert. So können Browser und installierte App gemeinsam genutzt werden. Cookies werden geteilt und sind aktiv, auf clientseitigen Speicher kann zugegriffen werden und der Service Worker ist installiert und einsatzbereit.

WebAPK aktualisieren

Informationen dazu, wie ein WebAPK aktualisiert wird, finden Sie unter So verarbeitet Chrome Updates des Web-App-Manifests.

Häufig gestellte Fragen

Welche Symbole werden zum Generieren des Ladebildschirms verwendet? :
Wir empfehlen, mindestens zwei Symbole für den Splash-Screen bereitzustellen: 192 Pixel und 512 Pixel. Viele Nutzer haben uns mitgeteilt, dass die Symbole auf dem Splash-Screen zu klein sind. Bei WebAPKs, die in Chrome 71 oder höher generiert wurden, wird auf dem Startbildschirm ein größeres Symbol angezeigt. Sie müssen nichts weiter tun, solange die empfohlenen Symbole bereitgestellt werden.
Was passiert, wenn der Nutzer die native App für die Website bereits installiert hat?
Wie beim Hinzufügen zum Startbildschirm können Nutzer eine Website unabhängig von nativen Apps hinzufügen. Wenn Sie davon ausgehen, dass Nutzer möglicherweise beide installieren, empfehlen wir, das Symbol oder den Namen Ihrer Website von dem Ihrer nativen App zu unterscheiden.
Wird der Speicher meiner installierten Website gelöscht, wenn der Nutzer den Cache von Chrome leert?
Ja.
Wird meine App auf einem neuen Gerät neu installiert?
Derzeit nicht, aber wir halten das für einen wichtigen Bereich und suchen nach Möglichkeiten, das zu ermöglichen.
Wie werden Berechtigungen gehandhabt? Wird die Chrome-Aufforderung oder die Android-Aufforderung angezeigt?
Berechtigungen werden weiterhin über Chrome verwaltet. Nutzer sehen die Chrome-Aufforderungen zum Erteilen von Berechtigungen und können diese in den Chrome-Einstellungen bearbeiten.
Auf welchen Android-Versionen funktioniert das?
Progressive Web-Apps können auf allen Android-Versionen installiert werden, auf denen Chrome für Android ausgeführt wird, insbesondere auf Jelly Bean und höher.
Wird dabei WebView verwendet?
Nein, die Website wird in der Chrome-Version geöffnet, in der der Nutzer die Website hinzugefügt hat.
Können wir die erstellten APKs in den Play Store hochladen?
Nein. Wenn Sie Ihr eigenes APK hochladen möchten, sehen Sie sich vertrauenswürdige Web-Aktivitäten an.
Sind sie im Play Store aufgeführt?
Nein. Wenn Sie Ihr eigenes APK für die Aufnahme in den Play Store hochladen möchten, sehen Sie sich Trusted Web Activities an.
Ich bin Entwickler eines anderen Browsers für Android. Kann ich diesen nahtlosen Installationsvorgang nutzen? :
Wir arbeiten daran. Wir arbeiten daran, die Funktion für alle Browser auf Android-Geräten verfügbar zu machen. Weitere Informationen folgen demnächst.