Android-ontwikkelaars hebben soms een kortstondige webervaring nodig om aan hun app-vereisten te voldoen. Een kortstondig aangepast tabblad is een gespecialiseerd aangepast tabblad dat vanuit een app een volledig geïsoleerde webbrowser start. Dit kan worden gebruikt voor authenticatiestrategieën waarbij de aanmeldingsstatus niet mag worden gesynchroniseerd met de browser of voor websessies waarbij gegevens niet mogen worden bewaard, zoals een modus voor privé browsen.
Standaard delen aangepaste tabbladen de status en functies van de browser van de gebruiker. Op een kortstondig aangepast tabblad bestaan cookies, in de cache opgeslagen bestanden, geschiedenis, inloggegevens en andere gegevens alleen binnen het bereik van het exemplaar van de sessie. Wanneer de Aangepaste tabbladactiviteit wordt gesloten, worden de gegevens spoorloos verwijderd.
Net als aangepaste tabbladen kan een kortstondig aangepast tabblad worden aangepast met acties en UI-thema's. Als u Auth Tab al gebruikt voor authenticatiestrategieën, kan kortstondig browsen worden toegevoegd aan de opstartintentie, waardoor een extra privacylaag aan het proces wordt toegevoegd.
Tijdelijke aangepaste tabbladen zijn beschikbaar vanaf Chrome 130 en kunnen worden geïnstantieerd met één regel code. Voor gebruikers voor wie de functie niet beschikbaar is, kunt u valideren of kortstondig browsen is ingeschakeld en fallback-alternatieven naadloos integreren.
Start een kortstondige sessie
Voor kortstondige aangepaste tabbladen is de AndroidX- browserbibliotheek vereist. De AndroidX-browserbibliotheek kan worden toegevoegd in de sectie Afhankelijkheden van het build.gradle
bestand van een project. De API's zijn beschikbaar in een alpha-build. Voeg het volgende toe aan uw buildbestand:
dependencies {
implementation 'androidx.browser:browser:1.9.0-alpha01'
}
Om een kortstondige browsesessie te creëren, gebruikt u de aangepaste setter in CustomTabsIntent
:
// In your activity
String url = "https://developers.android.com";
CustomTabsIntent customTabsIntent = new CustomTabsIntent.Builder()
.setEphemeralBrowsingEnabled(true)
.build();
customTabsIntent.launchUrl(MainActivity.this, Uri.parse(url));
Omdat kortstondig browsen wordt geactiveerd door een extra intentie in de standaardimplementatie van aangepaste Chrome-tabbladen, kunnen aanpassingen worden toegevoegd, net als bij typische aangepaste tabbladen.
// Add customizations
String url = "https://developers.android.com";
CustomTabsIntent customTabsIntent = new CustomTabsIntent.Builder()
.setEphemeralBrowsingEnabled(true)
.setUrlBarHidingEnabled(false)
.setShareState(CustomTabsIntent.SHARE_STATE_OFF)
.setCloseButton(BitmapFactory.decodeResource(getResources(), R.drawable.ic_back_arrow))
.build();
customTabsIntent.launchUrl(MainActivity.this, Uri.parse(url));
Voor ontwikkelaars die Auth Tab gebruiken, voegt u de kortstondige browse-setter toe aan de AuthTabIntent
:
// Add ephemeral browsing to Auth Tab
AuthTabIntent authTabIntent = new AuthTabIntent.Builder()
.setEphemeralBrowsingEnabled(true)
.build();
authTabIntent.launch(launcher, uri, redirectScheme);
Sommige aanpassingen zijn gewijzigd of niet beschikbaar op een kortstondig tabblad:
- De geschiedenis wordt niet vastgelegd in een kortstondige sessie.
- Gebruikers kunnen de huidige pagina niet downloaden.
- Het lang indrukken van een link om deze in een nieuw Chrome-tabblad te openen, is uitgeschakeld.
- De optie om de huidige pagina in de standaardbrowser te openen met het overloopmenu opent een browservenster in de incognitomodus.
Terugval op eerdere implementaties
Niet alle gebruikersapparaten hebben de mogelijkheid om tijdelijke aangepaste tabbladen te openen. Om deze gevallen aan te pakken, kunnen ontwikkelaars CustomTabsClient
gebruiken om de onderliggende browser te doorzoeken om te bepalen of kortstondig browsen wordt ondersteund. Hiervoor is een serviceverbinding met CustomTabsClient
vereist. Om dit te bereiken, start u een nieuwe CustomTabsServiceConnection
om toegang te krijgen tot de CustomTabsClient
die wordt geleverd na een succesvolle binding.
// in your activity
CustomTabsServiceConnection connection = new CustomTabsServiceConnection() {
@Override
public void onCustomTabsServiceConnected(@NonNull ComponentName name, @NonNull CustomTabsClient client) {
CustomTabsSession session = client.newSession(null);
try {
if (session.isEphemeralBrowsingSupported(Bundle.EMPTY)) {
// launch ephemeral tab
} else {
// fallback
}
} catch (RemoteException e) {
// fallback
}
}
@Override
public void onServiceDisconnected(ComponentName componentName) { }
};
CustomTabsClient.bindCustomTabsService(this, "com.android.chrome", connection);
Apps die gebruikers bedienen die nog geen toegang hebben tot tijdelijke aangepaste tabbladen, kunnen andere methoden gebruiken, zoals een WebView waarbij caching is uitgeschakeld. Een voorbeeld van een implementatie die gebruik maakt van kortstondige aangepaste tabbladen met terugval op WebView is te vinden in de Android Browser Helper -bibliotheek.