Android-ontwikkelaars hebben soms een tijdelijke webervaring nodig om aan de eisen van hun app te voldoen. Een tijdelijk aangepast tabblad is een gespecialiseerd aangepast tabblad dat een volledig geïsoleerde webbrowser vanuit een app opent. Dit kan worden gebruikt voor authenticatiestrategieën waarbij de inlogstatus niet met de browser mag worden gesynchroniseerd, of voor websessies waarbij gegevens niet mogen worden bewaard, zoals een privébrowsermodus.
Standaard delen aangepaste tabbladen de status en functies van de browser van de gebruiker. In een tijdelijk aangepast tabblad bestaan cookies, gecachte bestanden, geschiedenis, inloggegevens en andere gegevens alleen binnen het bereik van de sessie. Wanneer de activiteit van het aangepaste tabblad wordt gesloten, worden de gegevens spoorloos verwijderd.
Net als aangepaste tabbladen kan een tijdelijk aangepast tabblad worden aangepast met acties en UI-thema's. Als u Auth Tab al gebruikt voor authenticatiestrategieën, kan tijdelijk browsen worden toegevoegd aan de startintentie, wat een extra laag privacy aan het proces toevoegt.
Tijdelijke aangepaste tabbladen zijn beschikbaar in Chrome 136 en kunnen met één regel code worden geïnstantieerd. Voor gebruikers bij wie de functie niet beschikbaar is, kunt u valideren of tijdelijk browsen is ingeschakeld en naadloos fallback-alternatieven integreren.
Controleer of tijdelijk browsen wordt ondersteund
Voor tijdelijke aangepaste tabbladen is de AndroidX- browserbibliotheek vereist. De AndroidX-browserbibliotheek kan worden toegevoegd in de sectie 'dependencies' van het build.gradle
-bestand van een project. De API's zijn beschikbaar in een alfaversie. Voeg het volgende toe aan uw buildbestand:
dependencies {
implementation 'androidx.browser:browser:1.9.0-alpha05'
}
Controleren of tijdelijk browsen wordt ondersteund, kan met CustomTabsClient#isEphemeralBrowsingSupported(Context, String)
:
// In your activity
if (CustomTabsClient.isEphemeralBrowsingSupported(this, provider)) {
...
}
waarbij provider
de pakketnaam is van de te gebruiken webbrowser. Raadpleeg Controleren of een Android-apparaat een browser heeft die aangepaste tabbladen ondersteunt voor informatie over het verkrijgen van een pakketnaam voor een browser die aangepaste tabbladen ondersteunt.
Start een kortstondige sessie
Om een tijdelijke browsersessie te maken, 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 tabbladen in Chrome, kunnen aanpassingen op dezelfde manier worden toegevoegd 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 ephemeral browsing setter toe aan AuthTabIntent
:
// Add ephemeral browsing to Auth Tab
AuthTabIntent authTabIntent = new AuthTabIntent.Builder()
.setEphemeralBrowsingEnabled(true)
.build();
authTabIntent.launch(launcher, uri, redirectScheme);
Sommige aanpassingen worden gewijzigd of zijn niet beschikbaar in een tijdelijk tabblad:
- Bij een kortstondige sessie wordt de geschiedenis niet vastgelegd.
- Gebruikers kunnen de huidige pagina niet downloaden.
- Het lang indrukken van een link om deze te openen in een nieuw Chrome-tabblad is uitgeschakeld.
- Als u de huidige pagina wilt openen in de standaardbrowser met het overloopmenu, wordt er een browservenster geopend in de incognitomodus.
Terugval naar eerdere implementaties
Niet alle gebruikersapparaten kunnen tijdelijke aangepaste tabbladen openen. Om deze gevallen te verwerken, kunnen ontwikkelaars CustomTabsClient
gebruiken om de onderliggende browser te raadplegen en te bepalen of tijdelijk browsen wordt ondersteund. Hiervoor is een serviceverbinding met de CustomTabsClient
vereist. Om dit te bereiken, start u een nieuwe CustomTabsServiceConnection
om toegang te krijgen tot de CustomTabsClient
die is opgegeven 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 Ephemeral Custom Tabs, kunnen andere methoden gebruiken, zoals een WebView met caching uitgeschakeld. Een voorbeeld van een implementatie die Ephemeral Custom Tabs gebruikt met een fallback naar WebView is te vinden in de Android Browser Helper -bibliotheek.