Wenn der Nutzer Ihre progressive Web-App auf seinem Android-Gerät zum Startbildschirm hinzufügt, generiert Chrome automatisch eine APK-Datei für Sie, die wir manchmal als WebAPK bezeichnen. Durch die Installation über eine APK-Datei 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 zum Startbildschirm des Nutzers hinzugefügt. Chrome generiert und installiert automatisch eine spezielle APK-Datei Ihrer App. Wir bezeichnen diese manchmal als WebAPK. Durch die Installation über eine APK-Datei kann Ihre App im App-Launcher und in den App-Einstellungen von Android angezeigt werden und eine Reihe von Intent-Filtern registrieren.
Zum Generieren der WebAPK-Datei werden das Web-App-Manifest und andere Metadaten verwendet. Wenn eine Aktualisierung des Manifests erkannt wird, muss Chrome eine neue APK-Datei generieren.
Android-Intent-Filter
Wenn eine progressive Web-App auf 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, anstatt in einem Browsertab.
Betrachten Sie das folgende teilweise manifest.json-Manifest:
"start_url": "/",
"display": "standalone",
Wenn eine Web-App damit über den App-Launcher gestartet wird, wird https://example.com/ als eigenständige App ohne Browser-Chrome geöffnet.
Die WebAPK-Datei enthält die folgenden Intent-Filter:
<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 zu https://example.com/read klickt, wird er vom Intent abgefangen und in der progressiven Web-App geöffnet.
Intent-Filter mit scope einschränken
Wenn Ihre progressive Web-App nicht alle URLs auf Ihrer Website verarbeiten soll,
können Sie die scope Eigenschaft Ihrem
Web-App-Manifest hinzufügen. Die Eigenschaft 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 Inhalte, die keine Apps sind, in derselben Domain befinden.
Betrachten Sie das folgende teilweise manifest.json-Manifest:
"scope": "/app/",
"start_url": "/app/",
"display": "standalone",
Wenn sie über den App-Launcher gestartet wird, wird https://example.com/app/ als eigenständige App ohne Browser-Chrome geöffnet.
Wie zuvor enthält die generierte WebAPK-Datei einen Intent-Filter, aber mit einem anderen Attribut android:pathPrefix in der Datei AndroidManifest.xml der APK-Datei:
<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:
https://example.com/app/ - innerhalb von /app/
https://example.com/app/read/book - innerhalb von /app/
https://example.com/help/ - nicht in /app/
https://example.com/about/ - nicht in /app/
Weitere Informationen zu scope, was passiert, wenn Sie es nicht festlegen, und wie Sie damit
den Bereich Ihrer App definieren können, finden Sie unter
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. Fordern Sie beispielsweise nicht beim ersten Laden die Berechtigung zum Zugriff auf die Kamera an, sondern warten Sie, bis der Nutzer versucht, ein Foto aufzunehmen.
Speicher und App-Status verwalten
Obwohl die progressive Web-App über eine APK-Datei installiert wird, verwendet Chrome das aktuelle Profil, um alle Daten zu speichern. Sie werden nicht getrennt. So können Sie die installierte App gemeinsam mit dem Browser nutzen. Cookies werden gemeinsam verwendet und sind aktiv, auf den clientseitigen Speicher kann zugegriffen werden und der Service Worker ist installiert und einsatzbereit.
WebAPK-Datei aktualisieren
Informationen zum Aktualisieren einer WebAPK-Datei finden Sie unter So verarbeitet Chrome Aktualisierungen des Web-App-Manifests.
Häufig gestellte Fragen
Welche Symbole werden zum Generieren des Splash-Screens verwendet?
Wir empfehlen, mindestens zwei Symbolgrößen für den Splash-Screen anzugeben: 192 px und 512 px. 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 Splash-Screen ein größeres Symbol angezeigt. Solange die empfohlenen Symbole bereitgestellt werden, ist keine Aktion erforderlich.
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 beides installieren, empfehlen wir, das Symbol oder den Namen Ihrer Website von 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 neu installiert, wenn ich ein neues Gerät erhalte?
Derzeit nicht. Wir halten das aber für einen wichtigen Bereich und untersuchen Möglichkeiten, dies zu ermöglichen.
Wie werden Berechtigungen verwaltet? 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 sie 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, über die der Nutzer die Website hinzugefügt hat.
Können wir die erstellten APK-Dateien in den Google Play Store hochladen?
Nein. Wenn Sie Ihre eigene APK-Datei hochladen möchten, sehen Sie sich Trusted Web Activities an.
Werden diese im Google Play Store aufgeführt?
Nein. Wenn Sie Ihre eigene APK-Datei hochladen möchten, um sie im Play Store aufzulisten, sehen Sie sich Trusted Web Activities an.
Ich bin Entwickler eines anderen Browsers unter Android. Kann ich diesen nahtlosen Installationsprozess nutzen?
Wir arbeiten aber daran. Wir möchten diese Funktion allen Browsern unter Android zur Verfügung stellen und werden bald weitere Informationen dazu veröffentlichen.