Is it possible to hide URL bar on Chrome Custom Tabs

Demonic218 picture Demonic218 · Feb 12, 2019 · Viewed 9.3k times · Source

I'm looking for a way to, as the title says hide the url bar.

I've got this so far but it hasn't changed anything.

CustomTabsIntent.Builder builder = new CustomTabsIntent.Builder();
        builder.setShowTitle(false);
        builder.enableUrlBarHiding();
        CustomTabsIntent customTabsIntent = builder.build();
        customTabsIntent.launchUrl(this, Uri.parse(url));

I've tried to use webviews but I've had endless problems with them with regards to file upload and certain css that isn't working well. The Custom Tab works well in all those aspects, and it seems faster.

As per @113408 answer I'm trying to implement a TWA, I've got it working, added the link between the website and the app and the app to the website, but the URL bar is still viable.

Here is the manifest file as it is the only coding I've done.

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.app.comppanynme.twatest">

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme" >

        <meta-data
            android:name="asset_statements"
            android:resource="@string/asset_statements" />

        <activity
            android:name="android.support.customtabs.trusted.LauncherActivity">

            <!-- Edit android:value to change the url opened by the TWA -->
            <meta-data
                android:name="android.support.customtabs.trusted.DEFAULT_URL"
                android:value="http://192.168.8.46" />

            <!-- This intent-filter adds the TWA to the Android Launcher -->
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>

            <!--
              This intent-filter allows the TWA to handle Intents to open
              airhorner.com.
            -->
            <intent-filter>
                <action android:name="android.intent.action.VIEW"/>
                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="android.intent.category.BROWSABLE"/>

                <!-- Edit android:host to handle links to the target URL-->
                <data
                    android:scheme="http"
                    android:host="192.168.8.46"/>
            </intent-filter>
        </activity>
    </application>
</manifest>

Here is my asset statement

<string name="asset_statements">
        [{
            \"relation\": [\"delegate_permission/common.handle_all_urls\"],
            \"target\": {
                \"namespace\": \"web\",
                \"site\": \"http://192.168.8.46"}
        }]
    </string>

Answer

113408 picture 113408 · Feb 12, 2019

You can achieve the desired result using Trusted Web Activities

Trusted Web Activities are a new way to integrate your web-app content such as your PWA with your Android app using a protocol based on Custom Tabs.

Ultimately TWA will allow you to do exactly the same as the CustomChromeTabs but offer more functionalities.

What you're looking for more specifically is Remove the URL bar

Trusted Web Activities require an association between the Android application and the website to be established to remove the URL bar.

NB: When hiding the URL bar make sure you serve your page through HTTPS otherwise you will not be able to hide as the page is considered not secure.

How to get HTTPS working on your local development environment in 5 minutes