A Flutter plugin to use Chrome Custom Tabs.


Custom Tabs is supported only Chrome for Android. For this reason, the interface is same, but behavior is following:

  • Android
    If Chrome is installed, open web URL in custom tab that you have customized some of look & feel. If it is not installed, open in other browser.
  • iOS
    Open SFSafariViewController using url_launcher, and all options at launch are ignored.

Getting Started

Add flutter_custom_tabs to the dependencies of your pubspec.yaml.

  flutter_custom_tabs: ^0.6.0


Open the web URL like url_launcher.


import 'package:flutter/material.dart';
import 'package:flutter_custom_tabs/flutter_custom_tabs.dart';

class MyApp extends StatelessWidget {
  Widget build(BuildContext context) {
    return MaterialApp(
      theme: ThemeData(
        primarySwatch: Colors.blue,
      home: Scaffold(
        body: Center(
          child: TextButton(
            child: const Text('Show Flutter homepage'),
            onPressed: () => _launchURL(context),

  void _launchURL(BuildContext context) async {
    try {
      await launch(
        option: CustomTabsOption(
          toolbarColor: Theme.of(context).primaryColor,
          enableDefaultShare: true,
          enableUrlBarHiding: true,
          showPageTitle: true,
          animation: CustomTabsAnimation.slideIn()
          // or user defined animation.
          animation: const CustomTabsAnimation(
            startEnter: 'slide_up',
            startExit: 'android:anim/fade_out',
            endEnter: 'android:anim/fade_in',
            endExit: 'slide_down',
          extraCustomTabs: const <String>[
            // ref. https://play.google.com/store/apps/details?id=org.mozilla.firefox
            // ref. https://play.google.com/store/apps/details?id=com.microsoft.emmx
    } catch (e) {
      // An exception is thrown if browser app is not installed on Android device.