- Navigating to external websites from your app?
- "Yes, that one is easy"
- Wondering how to keep the user in context?
- "I know... it can be done using WebView, but I don't like it that much"
- Aha! Why don't you try Chrome Custom Tabs?
- "Integrating it into my app can be a pain..."
- Not anymore!
simple-chrome-custom-tabs will help you with that.
simple-chrome-custom-tabs provides easy integration of Chrome Custom Tabs into your project. Just connect it to your activity, and navigate to the external website styling your tab as you wish. Moreover with Custom Tabs the navigation can be nearly instantaneous!
More information about Chrome Custom Tabs available at: https://developer.chrome.com/multidevice/android/customtabs
To start using this library, add these lines to the build.gradle
of your project:
repositories {
maven {
url "http://dl.bintray.com/novoda/maven"
}
}
dependencies {
compile 'com.novoda:simple-chrome-custom-tabs:0.1.6'
}
- Initialize
simple-chrome-custom-tabs
, you only have to this once.
SimpleChromeCustomTabs.initialize(context);
- Connect
simple-chrome-custom-tabs
to yourActivity
as soon as it is resumed.
@Override
public void onResume() {
super.onResume();
SimpleChromeCustomTabs.getInstance().connectTo(this);
}
And don't forget to disconnect when the Activity
is paused.
@Override
public void onPause() {
SimpleChromeCustomTabs.getInstance().disconnectFrom(this);
super.onPause();
}
- Navigate!
Uri url = ANY_WEBSITE_URL;
NavigationFallback fallback = ANY_FALLBACK_MECHANISM; //In case something goes wrong.
IntentCustomizer customizer = ANY_INTENT_CUSTOMIZER; //To theme your tab.
SimpleChromeCustomTabs.getInstance().withFallback(fallback)
.withIntentCustomizer(customizer)
.navigateTo(url, activity);
And voilà!!
External Browser | simple-chrome-custom-tabs |
---|---|
Note: Check the extended demo for further usage examples.
Here are a list of useful links:
- We always welcome people to contribute new features or bug fixes, here is how
- If you have a problem or you feel that important functionality is missing check the Issues Page first to see if we are working on it