WebAPKs unter Android

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

Bei der Installation einer PWA unter Android wird nicht nur die progressive Web-App zum Startbildschirm des Nutzers hinzugefügt. Chrome generiert und installiert automatisch ein spezielles APK Ihrer App. Wir bezeichnen dies manchmal als WebAPK. Wenn deine App über ein APK installiert wird, erscheint sie im App Launcher und in den App-Einstellungen von Android. Außerdem kann eine Reihe von Intent-Filtern registriert werden.

Zum Generieren der WebAPK prüft Chrome das Manifest der Webanwendung und andere Metadaten. Wenn eine Aktualisierung des Manifests erkannt wird, muss Chrome ein neues APK generieren.

Android-Intent-Filter

Wenn eine progressive Webanwendung auf Android installiert ist, werden eine Reihe von Intent-Filtern für alle URLs im Geltungsbereich der App registriert. Wenn ein Nutzer auf einen Link klickt, der zum Geltungsbereich der App gehört, wird die App geöffnet und nicht in einem Browsertab.

Betrachten Sie die folgende unvollständige manifest.json:

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

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

Die 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 zu https://example.com/read klickt, wird dieser vom Intent erfasst und in der progressiven Web-App geöffnet.

Mit scope Intent-Filter einschränken

Wenn Ihre Progressive Web-App nicht alle URLs auf Ihrer Website verarbeiten soll, können Sie dem Web-App-Manifest die Property scope hinzufügen. Die Property scope weist Android an, Ihre Webanwendung nur zu öffnen, wenn die URL mit origin + scope übereinstimmt. Sie können damit 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-spezifische Inhalte auf derselben Domain befinden.

Betrachten Sie die folgende unvollständige manifest.json:

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

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

Wie zuvor enthält das generierte WebAPK einen Intent-Filter, aber mit einem anderen android:pathPrefix-Attribut in 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 ein paar 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 ihn nicht festlegen, und wie Sie damit den Geltungsbereich 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 während der Laufzeit angefordert werden, idealerweise nur dann, wenn Sie sie wirklich benötigen. Fragen Sie beispielsweise nicht beim ersten Laden nach der Kameraberechtigung, sondern warten Sie, bis der Nutzer versucht, ein Foto aufzunehmen.

Speicher und App-Status verwalten

Auch wenn die progressive Webanwendung über ein APK installiert wird, verwendet Chrome das aktuelle Profil zum Speichern von Daten. Die Daten werden nicht getrennt. So können der Browser und die installierte App gemeinsam genutzt werden. Cookies werden gemeinsam verwendet und sind aktiv, auf den gesamten clientseitigen Speicherplatz kann zugegriffen werden und der Dienstworker ist installiert und einsatzbereit.

WebAPK aktualisieren

Informationen zum Aktualisieren einer WebAPK finden Sie im Hilfeartikel So verarbeitet Chrome Updates des Manifests der Webanwendung.

Häufig gestellte Fragen

Welche Symbole werden zum Generieren des Startbildschirms verwendet? :
Wir empfehlen, mindestens zwei Symbole anzugeben: 192 Pixel und 512 Pixel für den Ladebildschirm. Sie haben uns mitgeteilt, dass die Symbole auf dem Startbildschirm 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 angezeigt werden.
Was passiert, wenn der Nutzer die native App für die Website bereits installiert hat?
Ähnlich wie bei der Funktion „Zum Startbildschirm hinzufügen“ können Nutzer eine Website unabhängig von nativen Apps hinzufügen. Wenn Sie davon ausgehen, dass Nutzer möglicherweise beide installieren, sollten Sie das Symbol oder den Namen Ihrer Website von der nativen App unterscheiden.
Wird der Speicherplatz meiner installierten Website geleert, wenn der Nutzer den Chrome-Cache leert?
Ja.
Wird meine App neu installiert, wenn ich ein neues Gerät bekomme?
Aktuell nicht, aber wir sind der Meinung, dass dies ein wichtiger Bereich ist, und wir prüfen, wie wir das umsetzen können.
Wie werden Berechtigungen verarbeitet? Wird die Chrome-Aufforderung oder die Android-Aufforderung angezeigt?
Berechtigungen werden weiterhin über Chrome verwaltet. Nutzer werden in Chrome aufgefordert, Berechtigungen zu gewähren, und können diese in den Chrome-Einstellungen bearbeiten.
Mit welchen Android-Versionen funktioniert das?
Progressive Web-Apps können auf allen Android-Versionen installiert werden, auf denen Chrome for Android ausgeführt wird, insbesondere 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 die erstellten APKs in den Play Store hochgeladen werden?
Nein. Wenn Sie Ihr eigenes APK hochladen möchten, sehen Sie sich Vertrauenswürdige Web-Aktivitäten an.
Sind diese im Play Store aufgeführt?
Nein. Wenn Sie Ihr eigenes APK für den Eintrag im Play Store hochladen möchten, sehen Sie sich Vertrauenswürdige Webaktivitäten an.
Ich bin Entwickler eines anderen Browsers für Android. Kann ich diesen nahtlosen Installationsprozess nutzen? :
Wir arbeiten daran. Wir möchten diese Funktion für alle Browser auf Android-Geräten verfügbar machen. Weitere Informationen folgen bald.