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.

Wenn Sie eine PWA unter 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 dies manchmal als WebAPK. Wenn Ihre App über ein APK installiert wird, kann sie im App Launcher und in den App-Einstellungen von Android angezeigt werden und eine Reihe von Intent-Filtern registrieren.

Zum Generieren der WebAPK prüft Chrome das Manifest der Webanwendung und andere Metadaten. Wenn ein Update 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 teilweise 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 von der Intent-Funktion erfasst und in der Progressiven Webanwendung 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 teilweise 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 zur 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 Dienst-Worker 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 bereitzustellen: 192 × 512 Pixel für den Startbildschirm. 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 unternehmen, solange die empfohlenen Symbole vorhanden sind.
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 beides installieren, empfehlen wir, das Symbol oder den Namen Ihrer Website von Ihrer nativen App zu unterscheiden.
Wird der Speicherplatz meiner installierten Website gelöscht, wenn der Nutzer den Cache von Chrome löscht?
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 die 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 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 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.