Skip to content

Instantly share code, notes, and snippets.

@colinrtwhite
Last active February 3, 2020 08:44
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save colinrtwhite/d11e485b273ca778a939ae37d8073aa8 to your computer and use it in GitHub Desktop.
Save colinrtwhite/d11e485b273ca778a939ae37d8073aa8 to your computer and use it in GitHub Desktop.
fun Context.openWebPage(url: String): Boolean {
// Format the URI properly.
val uri = url.toWebUri()
// Try using Chrome Custom Tabs.
try {
val intent = CustomTabsIntent.Builder()
.setToolbarColor(getColorCompat(R.color.primary))
.setShowTitle(true)
.build()
intent.launchUrl(this, uri)
return true
} catch (ignored: Exception) {}
// Fall back to launching a default web browser intent.
try {
val intent = Intent(Intent.ACTION_VIEW, uri)
if (intent.resolveActivity(packageManager) != null) {
startActivity(intent)
return true
}
} catch (ignored: Exception) {}
// We were unable to show the web page.
return false
}
fun String.toWebUri(): Uri {
return (if (startsWith("http://") || startsWith("https://")) this else "https://$this").toUri()
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment