Contenidos
Wie verschiedene Komponenten zum Rendern von Webinhalten in Android-Anwendungen verwendet werden können.
Aktualisiert
Die Android-Plattform gibt es seit mehr als zehn Jahren und seit ihrer Einführung unterstützt sie das Web hervorragend. Es wurde mit WebView geliefert, einer Komponente, mit der Entwickler das Web in ihren eigenen Android-Anwendungen verwenden können. Darüber hinaus können Entwickler mit Android ihre eigene Browser-Engine auf die Plattform bringen und so Wettbewerb und Innovation fördern.
Entwickler können das Web auf vielfältige Weise in ihre Android-Anwendungen aufnehmen. WebView wird häufig zum Rendern von Anzeigen, als Layoutkomponente in Verbindung mit nativen UI-Elementen oder zum Packen von HTML 5-Spielen verwendet. Mit benutzerdefinierten Registerkarten können Entwickler In-App-Browser erstellen und eine In-App-Erfahrung bereitstellen. Mit Party-Webinhalten und Trusted Web Activity können Entwickler ihre Progressive Web Applications (PWA) in Android-Anwendungen verwenden, die im Play Store heruntergeladen werden können. .
Android WebView
WebView bietet Entwicklern Zugriff auf modernes HTML, CSS und JavaScript in ihren Android-Anwendungen und ermöglicht die Bereitstellung von Inhalten innerhalb der APK oder das Hosten im Internet. Es ist eine der flexibelsten und leistungsstärksten Komponenten von Android, die für die meisten Anwendungsfälle verwendet werden kann, in denen Webinhalte in einer Android-Anwendung enthalten sind. Von der Bereitstellung von Werbediensten wie AdMob bis zur Erstellung und Übermittlung vollständiger HTML5-Spiele mit modernen APIs wie WebGL.
Wenn WebView jedoch zum Erstellen eines In-App-Browsers oder zum Einbetten einer PWA in eine Android-App verwendet wird, fehlen die Sicherheit, Funktionen und Fähigkeiten der Webplattform.
Die In-App-Browser-Herausforderung
Im Laufe der Zeit haben immer mehr Entwickler Browser-Erlebnisse geschaffen, indem sie Inhalte von Drittanbietern in ihre Android-Anwendung integriert haben, mit dem Ziel, ihren Benutzern beim Surfen auf Websites von Drittanbietern ein reibungsloseres Erlebnis zu bieten. Diese Erfahrungen wurden als In-App-Browser bekannt.
WebView bietet umfassende Unterstützung für den modernen Web-Technologie-Stack und ist mit vielen modernen Web-APIs wie WebGL kompatibel. Bei WebView handelt es sich jedoch in erster Linie um eine Reihe von Tools für die Webbenutzeroberfläche. Das
ist nicht für alle Funktionen der Webplattform vorgesehen und unterstützt diese nicht. Wenn eine API bereits über eine native Alternative verfügt, z. B. Web Bluetoooth, oder die Implementierung der Browser-Benutzeroberfläche erforderlich ist, z. B. Push-Benachrichtigungen, wird diese möglicherweise nicht unterstützt. Da sich die Webplattform weiterentwickelt und weitere Funktionen hinzufügt, die nur nativen Apps zur Verfügung standen, wird diese Lücke nur noch größer. Da Anwendungsentwickler nicht steuern, welche Funktionen beim Öffnen von Inhalten von Drittanbietern verwendet werden, ist WebView eine schlechte Wahl für In-App-Browser oder zum Öffnen progressiver Webanwendungen. Selbst wenn WebView die Unterstützung aller Funktionen der Webplattform implementieren würde, müssten Entwickler weiterhin Code schreiben und ihre eigene Benutzeroberfläche für Funktionen wie Berechtigungen oder Push-Benachrichtigungen implementieren, was die Konsistenz für Benutzer erschwert.
Eine weitere Option, die Entwicklern zur Verfügung steht, besteht darin, eine Browser-Engine in Ihre Anwendung einzubetten. Dieser Ansatz führt nicht nur zu einer größeren Anwendungsgröße, sondern ist auch komplex und zeitaufwändig.
Benutzerdefinierte Registerkarten als Lösung für integrierte Browser in Anwendungen
Ära der benutzerdefinierten Registerkarten eingeführt in Chrome 45 und ermöglicht Entwicklern, eine Registerkarte aus dem Standardbrowser des Benutzers als Teil ihrer Anwendung zu verwenden. Benutzerdefinierte Registerkarten wurden ursprünglich von Chrome veröffentlicht und wurden daher als "Benutzerdefinierte Chrome-Registerkarten" bezeichnet. Heute ist ein Android API Die gängigsten Browser unterstützen benutzerdefinierte Registerkarten, einschließlich Chrome, Firefox, Edge und Samsung Internet. Daher ist es besser, sie einfach als "benutzerdefinierte Registerkarten" zu bezeichnen.
Mithilfe von benutzerdefinierten Registerkarten können Entwickler Webinhalte nahtlos in ihre App-Erfahrung integrieren. Außerdem können Entwickler die Aktivität anpassen, in der Webinhalte angezeigt werden, indem sie die Farbe der Symbolleiste, der Aktionsschaltflächen, der Übergangsanimation und mehr anpassen können.
Sie bieten auch Funktionen, die zuvor bei Verwendung von WebView oder der Integration einer Browser-Engine nicht verfügbar waren. Da der Browser der App mit dem Browser des Benutzers zusammenarbeitet, teilen sich benutzerdefinierte Registerkarten den Speicher mit dem Browser, sodass Benutzer sich nicht jedes Mal wieder bei ihren bevorzugten Websites anmelden müssen, wenn eine ihrer installierten Apps eine Browsersitzung in der Anwendung startet.
Im Gegensatz zu WebViews unterstützen benutzerdefinierte Registerkarten alle Funktionen und APIs der Webplattform, die von dem Browser unterstützt werden, der sie unterstützt.
Öffnen Sie progressive Webanwendungen mithilfe vertrauenswürdiger Webaktivitäten
Progressive Webanwendungen bieten viele Verhaltensweisen und Funktionen, die bisher nur nativen Anwendungen im Web zur Verfügung standen. Mit der Einführung eines App-ähnlichen Verhaltens wuchs der Wunsch der Entwickler, diese Erfahrungen auf Android wiederzuverwenden, und die Entwickler fragten nach Möglichkeiten, PWAs in ihre Apps zu integrieren.
Benutzerdefinierte Registerkarten unterstützen alle modernen Webfunktionen und APIs. Da sie jedoch hauptsächlich zum Öffnen von Inhalten von Drittanbietern entwickelt wurden, befindet sich oben eine Symbolleiste, die den Benutzern mitteilt, welche URLs sie besuchen, sowie das Symbol für das Vorhängeschloss, das angibt wenn die Site sicher ist. Durch das Öffnen der eigenen Erfahrung einer Anwendung verhindert die Symbolleiste, dass sich die Anwendung so anfühlt, als wäre sie in das Betriebssystem integriert.
Vertrauenswürdige Webaktivitäten Es wurde in Chrome 72 eingeführt und ermöglicht Entwicklern, seine PWA in einer Android-Anwendung zu verwenden. Das Protokoll ähnelt dem Protokoll für benutzerdefinierte Registerkarten, führt jedoch APIs ein, mit denen Entwickler (über) überprüfen können Links zu digitalen Assets), die sowohl die Android-App als auch die geöffnete URL steuern und die URL-Leiste entfernen, wenn beide wahr sind.
Sie führten auch eine API ein, um Begrüßungsbildschirme beim Öffnen der PWA oder beim Delegieren von Webbenachrichtigungen zu erstellen, die von nativem Code verarbeitet werden sollen. Weitere Funktionen werden in Kürze verfügbar sein, z. B. die Unterstützung für die Abrechnung von Spielen.
Da URLs, die in vertrauenswürdigen Webaktivitäten geöffnet werden, voraussichtlich PWAs sind und eine Reihe von Verhaltensweisen und Leistungsmerkmalen aufweisen, werden in vertrauenswürdigen Webaktivitäten Qualitätskriterien für PWAs eingeführt, die in ihnen geöffnet werden.
Einschränkungen aktueller Lösungen
Das Feedback der Entwickler zeigte, dass Plattformunterstützung für benutzerdefinierte Registerkarten in Kombination mit der Flexibilität von WebView erforderlich ist, damit sie beispielsweise auf das DOM zugreifen oder JavaScript in ihre Browser innerhalb der Anwendung einfügen können.
Benutzerdefinierte Registerkarten sind effektiv eine Registerkarte, die vom Browser des Benutzers gerendert wird, mit einer benutzerdefinierten Benutzeroberfläche oder überhaupt keiner Benutzeroberfläche. Dies bedeutet, dass der Browser die Erwartungen des Benutzers an Datenschutz und Sicherheit gegenüber dem Browser erfüllen muss, was einige dieser Funktionen unmöglich macht.
Das Web on Android-Team von Google sucht nach Alternativen und experimentiert mit Lösungen, um diese Anwendungsfälle zu lösen. Bleiben Sie dran für weitere Details!
Zusammenfassung
WebView ist nützlich, wenn eine Anwendung HTML, CSS und JavaScript in ihrer Android-Anwendung benötigt, jedoch keine erweiterten Funktionen und Fähigkeiten verwendet, die im modernen Web verfügbar sind, wie z. B. Push-Benachrichtigungen, Bluetooth Web und andere. Es wird nicht empfohlen, Inhalte zu öffnen, die für die moderne Webplattform entwickelt wurden, da sie möglicherweise nicht so angezeigt werden, wie es der Entwickler beabsichtigt hat. WebView wird nicht zum Erstellen von anwendungsintegrierten Browsern empfohlen. Auf der anderen Seite ist das Anzeigen von Webinhalten aus der ersten Person ein Bereich, in dem WebViews wirklich glänzen.
Vertrauenswürdige Webaktivität sollte verwendet werden, wenn Entwickler ihre eigene progressive Webanwendung im Vollbildmodus in ihrer Android-Anwendung rendern möchten. Es kann als einzige Aktivität in der App oder in Verbindung mit anderen nativen Aktivitäten verwendet werden.
Benutzerdefinierte Registerkarten sind die empfohlene Methode zum Öffnen von Inhalten von Drittanbietern, die für die Webplattform entwickelt wurden und auch als In-App-Browser bezeichnet werden.