Android Dev Summit, October 23-24: two days of technical content, directly from the Android team. Sign-up for livestream updates.

TrustedWebUtils

public class TrustedWebUtils
extends Object

java.lang.Object
   ↳ androidx.browser.customtabs.TrustedWebUtils


Class for utilities and convenience calls for opening a qualifying web page as a Trusted Web Activity. Trusted Web Activity is a fullscreen UI with no visible browser controls that hosts web pages meeting certain criteria. The full list of qualifications is at the implementing browser's discretion, but minimum recommended set is for the web page :

  • To have declared delegate_permission/common.handle_all_urls relationship with the launching client application ensuring 1:1 trust between the Android native and web components. See https://developers.google.com/digital-asset-links/ for details.
  • To work as a reliable, fast and engaging standalone component within the launching app's flow.
  • To be accessible and operable even when offline.
Fallback behaviors may also differ with implementation. Possibilities are launching the page in a custom tab, or showing it in browser UI. Browsers are encouraged to use CustomTabsCallback.onRelationshipValidationResult(int, Uri, boolean, Bundle) for sending details of the verification results.

Summary

Constants

String EXTRA_LAUNCH_AS_TRUSTED_WEB_ACTIVITY

Boolean extra that triggers a CustomTabsIntent launch to be in a fullscreen UI with no browser controls.

Public methods

static void launchAsTrustedWebActivity(Context context, CustomTabsIntent customTabsIntent, Uri uri)

This method is deprecated. Use TrustedWebActivityIntentBuilder instead.

static boolean splashScreensAreSupported(Context context, String packageName, String version)

Returns whether the splash screens feature is supported by the given package.

static boolean transferSplashImage(Context context, File file, String fileProviderAuthority, String packageName, CustomTabsSession session)

Transfers the splash image to a Custom Tabs provider.

Inherited methods

Constants

EXTRA_LAUNCH_AS_TRUSTED_WEB_ACTIVITY

public static final String EXTRA_LAUNCH_AS_TRUSTED_WEB_ACTIVITY

Boolean extra that triggers a CustomTabsIntent launch to be in a fullscreen UI with no browser controls.

Constant Value: "android.support.customtabs.extra.LAUNCH_AS_TRUSTED_WEB_ACTIVITY"

Public methods

launchAsTrustedWebActivity

public static void launchAsTrustedWebActivity (Context context, 
                CustomTabsIntent customTabsIntent, 
                Uri uri)

This method is deprecated.
Use TrustedWebActivityIntentBuilder instead.

Launch the given CustomTabsIntent as a Trusted Web Activity. The given CustomTabsIntent should have a valid CustomTabsSession associated with it during construction. Once the Trusted Web Activity is launched, browser side implementations may have their own fallback behavior (e.g. Showing the page in a custom tab UI with toolbar) based on qualifications listed above or more.

Parameters
context Context: Context to use while launching the CustomTabsIntent.

customTabsIntent CustomTabsIntent: The CustomTabsIntent to use for launching the Trusted Web Activity. Note that all customizations in the given associated with browser toolbar controls will be ignored.

uri Uri: The web page to launch as Trusted Web Activity.

splashScreensAreSupported

public static boolean splashScreensAreSupported (Context context, 
                String packageName, 
                String version)

Returns whether the splash screens feature is supported by the given package. Note: you can call this method prior to connecting to a CustomTabsService. This way, if true is returned, the splash screen can be shown as soon as possible.

Parameters
context Context: Context to use.

packageName String: The package name of the Custom Tabs provider to check.

version String: The splash screen version/feature you are testing for support. Use a value from SplashScreenVersion.

Returns
boolean Whether the specified Custom Tabs provider supports the specified splash screen feature/version.

transferSplashImage

public static boolean transferSplashImage (Context context, 
                File file, 
                String fileProviderAuthority, 
                String packageName, 
                CustomTabsSession session)

Transfers the splash image to a Custom Tabs provider. The reading and decoding of the image happens synchronously, so it's recommended to call this method on a worker thread. This method should be called prior to launching the Activity. Pass additional parameters, such as background color, using TrustedWebActivityIntentBuilder.setSplashScreenParams(Bundle).

Parameters
context Context: Context to use.

file File: File with the image.

fileProviderAuthority String: authority of FileProvider used to generate an URI for the file.

packageName String: Package name of Custom Tabs provider.

session CustomTabsSession: CustomTabsSession established with the Custom Tabs provider.

Returns
boolean True if the image was received and processed successfully.