CINXE.COM
url_launcher | Flutter package
<!DOCTYPE html> <html lang="en-us"><head><script src="https://www.googletagmanager.com/gtm.js?id=GTM-MX6DBN9" async="async"></script><script src="/static/hash-mh7qv2oc/js/gtm.js" async="async"></script><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="ie=edge"/><meta name="viewport" content="width=device-width, initial-scale=1"/><meta name="twitter:card" content="summary"/><meta name="twitter:site" content="@dart_lang"/><meta name="twitter:description" content="Flutter plugin for launching a URL. Supports web, phone, SMS, and email schemes."/><meta name="twitter:image" content="https://pub.dev/static/hash-mh7qv2oc/img/pub-dev-icon-cover-image.png"/><meta property="og:type" content="website"/><meta property="og:site_name" content="Dart packages"/><meta property="og:title" content="url_launcher | Flutter package"/><meta property="og:description" content="Flutter plugin for launching a URL. Supports web, phone, SMS, and email schemes."/><meta property="og:image" content="https://pub.dev/static/hash-mh7qv2oc/img/pub-dev-icon-cover-image.png"/><meta property="og:url" content="https://pub.dev/packages/url_launcher"/><title>url_launcher | Flutter package</title><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Google+Sans:wght@400;500;700&family=Google+Sans+Display:wght@400&family=Google+Sans+Text:wght@400;500;700&family=Google+Sans+Mono:wght@400;700&display=swap"/><link rel="shortcut icon" href="/static/hash-mh7qv2oc/img/flutter-logo-32x32.png"/><meta rel="apple-touch-icon" href="/static/hash-mh7qv2oc/img/flutter-logo-32x32.png"/><meta rel="apple-touch-icon-precomposed" href="/static/hash-mh7qv2oc/img/flutter-logo-32x32.png"/><link rel="stylesheet" href="https://www.gstatic.com/glue/v25_0/ccb.min.css"/><link rel="search" type="application/opensearchdescription+xml" title="Dart packages" href="/osd.xml"/><link rel="canonical" href="https://pub.dev/packages/url_launcher"/><meta name="description" content="Flutter plugin for launching a URL. Supports web, phone, SMS, and email schemes."/><link rel="alternate" type="application/atom+xml" title="Updated Packages Feed for Pub" href="/feed.atom"/><link rel="stylesheet" type="text/css" href="/static/hash-mh7qv2oc/material/bundle/styles.css"/><link rel="stylesheet" type="text/css" href="/static/hash-mh7qv2oc/css/style.css"/><script src="/static/hash-mh7qv2oc/material/bundle/script.min.js" defer="defer"></script><script src="/static/hash-mh7qv2oc/js/script.dart.js" defer="defer"></script><script src="https://www.gstatic.com/brandstudio/kato/cookie_choice_component/cookie_consent_bar.v3.js" defer="defer" data-autoload-cookie-consent-bar="true"></script><meta name="pub-page-data" content="eyJwa2dEYXRhIjp7InBhY2thZ2UiOiJ1cmxfbGF1bmNoZXIiLCJ2ZXJzaW9uIjoiNi4zLjEiLCJsaWtlcyI6Nzg0NywicHVibGlzaGVySWQiOiJmbHV0dGVyLmRldiIsImlzRGlzY29udGludWVkIjpmYWxzZSwiaXNMYXRlc3QiOnRydWV9LCJzZXNzaW9uQXdhcmUiOmZhbHNlfQ=="/><link rel="preload" href="/static/hash-mh7qv2oc/highlight/highlight-with-init.js" as="script"/></head><body class="light-theme"><script src="/static/hash-mh7qv2oc/js/dark-init.js"></script><noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-MX6DBN9" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript><div class="site-header"><button class="hamburger" aria-label="menu toggle"></button><a class="logo" href="/" aria-label="Go to the landing page of pub.dev"><img class="site-logo" src="/static/hash-mh7qv2oc/img/pub-dev-logo.svg" alt="" width="140" height="30" role="presentation"/></a><div class="site-header-space"></div><div class="site-header-mask"></div><div class="site-header-search"><form action="/packages" method="GET"><input class="site-header-search-input" name="q" placeholder="New search..." autocomplete="on" title="Search"/></form></div><nav class="site-header-nav scroll-container"><div class="nav-login-container"><button id="-account-login" class="nav-main-button link">Sign in</button></div><div class="nav-container nav-help-container hoverable"><button class="nav-main-button">Help</button><div class="nav-hover-popup"><div class="nav-table-columns"><div class="nav-table-column"><h3>pub.dev</h3><a class="nav-link" href="/help/search" rel="noopener" target="_blank">Searching for packages</a><a class="nav-link" href="/help/scoring" rel="noopener" target="_blank">Package scoring and pub points</a></div><div class="nav-table-column"><h3>Flutter</h3><a class="nav-link" href="https://flutter.dev/using-packages/" rel="noopener" target="_blank">Using packages</a><a class="nav-link" href="https://flutter.dev/developing-packages/" rel="noopener" target="_blank">Developing packages and plugins</a><a class="nav-link" href="https://dart.dev/tools/pub/publishing" rel="noopener" target="_blank">Publishing a package</a></div><div class="nav-table-column"><h3>Dart</h3><a class="nav-link" href="https://dart.dev/guides/packages" rel="noopener" target="_blank">Using packages</a><a class="nav-link" href="https://dart.dev/tools/pub/publishing" rel="noopener" target="_blank">Publishing a package</a></div></div></div></div><div class="nav-container nav-help-container-mobile foldable"><h3 class="foldable-button">pub.dev <img class="foldable-icon" src="/static/hash-mh7qv2oc/img/nav-mobile-foldable-icon.svg" alt="toggle folding of the section" width="13" height="6"/></h3><div class="foldable-content"><a class="nav-link" href="/help/search" rel="noopener" target="_blank">Searching for packages</a><a class="nav-link" href="/help/scoring" rel="noopener" target="_blank">Package scoring and pub points</a></div></div><div class="nav-container nav-help-container-mobile foldable"><h3 class="foldable-button">Flutter <img class="foldable-icon" src="/static/hash-mh7qv2oc/img/nav-mobile-foldable-icon.svg" alt="toggle folding of the section" width="13" height="6"/></h3><div class="foldable-content"><a class="nav-link" href="https://flutter.dev/using-packages/" rel="noopener" target="_blank">Using packages</a><a class="nav-link" href="https://flutter.dev/developing-packages/" rel="noopener" target="_blank">Developing packages and plugins</a><a class="nav-link" href="https://dart.dev/tools/pub/publishing" rel="noopener" target="_blank">Publishing a package</a></div></div><div class="nav-container nav-help-container-mobile foldable"><h3 class="foldable-button">Dart <img class="foldable-icon" src="/static/hash-mh7qv2oc/img/nav-mobile-foldable-icon.svg" alt="toggle folding of the section" width="13" height="6"/></h3><div class="foldable-content"><a class="nav-link" href="https://dart.dev/guides/packages" rel="noopener" target="_blank">Using packages</a><a class="nav-link" href="https://dart.dev/tools/pub/publishing" rel="noopener" target="_blank">Publishing a package</a></div></div></nav><button class="-pub-theme-toggle" aria-label="light/dark theme toggle"></button></div><div id="banner-container"></div><main class="container"><div class="detail-wrapper -active -has-info-box"><div class="detail-banners"><a href="https://flutter.dev/docs/development/packages-and-plugins/favorites" rel="noopener" target="_blank" title="Package is a Flutter Favorite"><img class="ff-banner ff-banner-desktop displayed-in-light-theme" src="/static/hash-mh7qv2oc/img/ff-banner-desktop-2x.png" alt="" width="150" height="218" role="presentation"/><img class="ff-banner ff-banner-desktop displayed-in-dark-theme" src="/static/hash-mh7qv2oc/img/ff-banner-desktop-dark-2x.png" alt="" width="150" height="218" role="presentation"/><img class="ff-banner ff-banner-mobile displayed-in-light-theme" src="/static/hash-mh7qv2oc/img/ff-banner-mobile-2x.png" alt="" width="94" height="116" role="presentation"/><img class="ff-banner ff-banner-mobile displayed-in-dark-theme" src="/static/hash-mh7qv2oc/img/ff-banner-mobile-dark-2x.png" alt="" width="94" height="116" role="presentation"/></a></div><div class="detail-header -is-loose"><div class="detail-container"><div class="detail-header-outer-block"><div class="detail-header-content-block"><h1 class="title pub-monochrome-icon-hoverable">url_launcher 6.3.1 <span class="pkg-page-title-copy"><img class="pub-monochrome-icon pkg-page-title-copy-icon filter-invert-on-dark" src="/static/hash-mh7qv2oc/img/content-copy-icon.svg" alt="copy "url_launcher: ^6.3.1" to clipboard" width="18" height="18" title="Copy "url_launcher: ^6.3.1" to clipboard" data-copy-content="url_launcher: ^6.3.1" data-ga-click-event="copy-package-version"/><div class="pkg-page-title-copy-feedback"><span class="code">url_launcher: ^6.3.1</span> copied to clipboard</div></span></h1><div class="metadata">Published <span><a class="-x-ago" href="" title="Oct 8, 2024" role="button" data-timestamp="1728381573981">5 months ago</a></span> • <a class="-pub-publisher" href="/publishers/flutter.dev"><img class="-pub-publisher-shield filter-invert-on-dark" src="/static/hash-mh7qv2oc/img/material-icon-verified.svg" alt="verified publisher" width="14" height="14" title="Published by a pub.dev verified publisher"/>flutter.dev</a><span class="package-badge" title="Package is compatible with Dart 3.">Dart 3 compatible</span></div><div class="detail-tags-and-like"><div class="detail-tags"><div class="-pub-tag-badge"><span class="tag-badge-main">SDK</span><a class="tag-badge-sub" href="/packages?q=sdk%3Aflutter" rel="nofollow" title="Packages compatible with Flutter SDK">Flutter</a></div><div class="-pub-tag-badge"><span class="tag-badge-main">Platform</span><a class="tag-badge-sub" href="/packages?q=platform%3Aandroid" rel="nofollow" title="Packages compatible with Android platform">Android</a><a class="tag-badge-sub" href="/packages?q=platform%3Aios" rel="nofollow" title="Packages compatible with iOS platform">iOS</a><a class="tag-badge-sub" href="/packages?q=platform%3Alinux" rel="nofollow" title="Packages compatible with Linux platform">Linux</a><a class="tag-badge-sub" href="/packages?q=platform%3Amacos" rel="nofollow" title="Packages compatible with macOS platform">macOS</a><a class="tag-badge-sub" href="/packages?q=platform%3Aweb" rel="nofollow" title="Packages compatible with Web platform">web</a><a class="tag-badge-sub" href="/packages?q=platform%3Awindows" rel="nofollow" title="Packages compatible with Windows platform">Windows</a></div></div><div class="detail-like"><button id="-pub-like-icon-button" class="mdc-icon-button" data-ga-click-event="toggle-like" aria-pressed="false" title="Like this package"><img class="mdc-icon-button__icon" src="/static/hash-mh7qv2oc/img/like-inactive.svg" alt="liked status: inactive" width="18" height="18"/><img class="mdc-icon-button__icon mdc-icon-button__icon--on" src="/static/hash-mh7qv2oc/img/like-active.svg" alt="liked status: active" width="18" height="18"/></button><span class="likes-count"><span id="likes-count">7.8k</span></span></div></div></div></div></div></div><div class="detail-container"><div class="detail-lead"><div class="detail-metadata-toggle"><div class="detail-metadata-toggle-icon">→</div><h3 class="detail-lead-title">Metadata</h3></div><p class="detail-lead-text">Flutter plugin for launching a URL. Supports web, phone, SMS, and email schemes.</p><p class="detail-lead-more"><a class="detail-metadata-toggle">More...</a></p></div></div><div class="detail-body"><div class="detail-tabs"><div class="detail-tabs-wide-header"><div class="detail-container"><ul class="detail-tabs-header"><li class="detail-tab tab-button detail-tab-readme-title -active">Readme</li><li class="detail-tab tab-link detail-tab-changelog-title"><a href="/packages/url_launcher/changelog" role="button">Changelog</a></li><li class="detail-tab tab-link detail-tab-example-title"><a href="/packages/url_launcher/example" role="button">Example</a></li><li class="detail-tab tab-link detail-tab-installing-title"><a href="/packages/url_launcher/install" role="button">Installing</a></li><li class="detail-tab tab-link detail-tab-versions-title"><a href="/packages/url_launcher/versions" role="button">Versions</a></li><li class="detail-tab tab-link detail-tab-analysis-title"><a href="/packages/url_launcher/score" role="button">Scores</a></li></ul></div></div><div class="detail-container detail-body-main"><div class="detail-tabs-content"><section class="tab-content detail-tab-readme-content -active markdown-body"><!--?code-excerpt path-base="example"?--> <h1 id="url_launcher" class="hash-header">url_launcher <a href="#url_launcher" class="hash-link">#</a></h1> <p><a href="https://pub.dev/packages/url_launcher"><img src="https://img.shields.io/pub/v/url_launcher.svg" alt="pub package"></a></p> <p>A Flutter plugin for launching a URL.</p> <table> <thead> <tr> <th></th> <th>Android</th> <th>iOS</th> <th>Linux</th> <th>macOS</th> <th>Web</th> <th>Windows</th> </tr> </thead> <tbody> <tr> <td><strong>Support</strong></td> <td>SDK 16+</td> <td>12.0+</td> <td>Any</td> <td>10.14+</td> <td>Any</td> <td>Windows 10+</td> </tr> </tbody> </table> <h2 id="example" class="hash-header">Example <a href="#example" class="hash-link">#</a></h2> <!--?code-excerpt "lib/basic.dart (basic-example)"?--> <pre><code class="language-dart">import 'package:flutter/material.dart'; import 'package:url_launcher/url_launcher.dart'; final Uri _url = Uri.parse('https://flutter.dev'); void main() => runApp( const MaterialApp( home: Material( child: Center( child: ElevatedButton( onPressed: _launchUrl, child: Text('Show Flutter homepage'), ), ), ), ), ); Future<void> _launchUrl() async { if (!await launchUrl(_url)) { throw Exception('Could not launch $_url'); } } </code></pre> <p>See the example app for more complex examples.</p> <h2 id="configuration" class="hash-header">Configuration <a href="#configuration" class="hash-link">#</a></h2> <h3 id="ios" class="hash-header">iOS <a href="#ios" class="hash-link">#</a></h3> <p>Add any URL schemes passed to <code>canLaunchUrl</code> as <code>LSApplicationQueriesSchemes</code> entries in your Info.plist file, otherwise it will return false.</p> <p>Example:</p> <pre><code class="language-xml"><key>LSApplicationQueriesSchemes</key> <array> <string>sms</string> <string>tel</string> </array> </code></pre> <p>See <a href="https://developer.apple.com/documentation/uikit/uiapplication/1622952-canopenurl" rel="ugc"><code>-[UIApplication canOpenURL:]</code></a> for more details.</p> <h3 id="android" class="hash-header">Android <a href="#android" class="hash-link">#</a></h3> <p>Add any URL schemes passed to <code>canLaunchUrl</code> as <code><queries></code> entries in your <code>AndroidManifest.xml</code>, otherwise it will return false in most cases starting on Android 11 (API 30) or higher. Checking for <code>supportsLaunchMode(LaunchMode.inAppBrowserView)</code> also requires a <code><queries></code> entry to return anything but false. A <code><queries></code> element must be added to your manifest as a child of the root element.</p> <p>Example:</p> <!--?code-excerpt "android/app/src/main/AndroidManifest.xml (android-queries)" plaster="none"?--> <pre><code class="language-xml"><!-- Provide required visibility configuration for API level 30 and above --> <queries> <!-- If your app checks for SMS support --> <intent> <action android:name="android.intent.action.VIEW" /> <data android:scheme="sms" /> </intent> <!-- If your app checks for call support --> <intent> <action android:name="android.intent.action.VIEW" /> <data android:scheme="tel" /> </intent> <!-- If your application checks for inAppBrowserView launch mode support --> <intent> <action android:name="android.support.customtabs.action.CustomTabsService" /> </intent> </queries> </code></pre> <p>See <a href="https://developer.android.com/training/package-visibility/use-cases" rel="ugc">the Android documentation</a> for examples of other queries.</p> <h3 id="web" class="hash-header">Web <a href="#web" class="hash-link">#</a></h3> <p>Some web browsers may have limitations (e.g. a launch must be triggered by a user action). Check <a href="https://pub.dev/packages/url_launcher_web#limitations-on-the-web-platform">package:url_launcher_web</a> for more web-specific information.</p> <h2 id="supported-url-schemes" class="hash-header">Supported URL schemes <a href="#supported-url-schemes" class="hash-link">#</a></h2> <p>The provided URL is passed directly to the host platform for handling. The supported URL schemes therefore depend on the platform and installed apps.</p> <p>Commonly used schemes include:</p> <table> <thead> <tr> <th align="left">Scheme</th> <th align="left">Example</th> <th align="left">Action</th> </tr> </thead> <tbody> <tr> <td align="left"><code>https:<URL></code></td> <td align="left"><code>https://flutter.dev</code></td> <td align="left">Open <code><URL></code> in the default browser</td> </tr> <tr> <td align="left"><code>mailto:<email address>?subject=<subject>&body=<body></code></td> <td align="left"><code>mailto:smith@example.org?subject=News&body=New%20plugin</code></td> <td align="left">Create email to <code><email address></code> in the default email app</td> </tr> <tr> <td align="left"><code>tel:<phone number></code></td> <td align="left"><code>tel:+1-555-010-999</code></td> <td align="left">Make a phone call to <code><phone number></code> using the default phone app</td> </tr> <tr> <td align="left"><code>sms:<phone number></code></td> <td align="left"><code>sms:5550101234</code></td> <td align="left">Send an SMS message to <code><phone number></code> using the default messaging app</td> </tr> <tr> <td align="left"><code>file:<path></code></td> <td align="left"><code>file:/home</code></td> <td align="left">Open file or folder using default app association, supported on desktop platforms</td> </tr> </tbody> </table> <p>More details can be found here for <a href="https://developer.apple.com/library/content/featuredarticles/iPhoneURLScheme_Reference/Introduction/Introduction.html" rel="ugc">iOS</a> and <a href="https://developer.android.com/guide/components/intents-common.html" rel="ugc">Android</a></p> <p>URL schemes are only supported if there are apps installed on the device that can support them. For example, iOS simulators don't have a default email or phone apps installed, so can't open <code>tel:</code> or <code>mailto:</code> links.</p> <h3 id="checking-supported-schemes" class="hash-header">Checking supported schemes <a href="#checking-supported-schemes" class="hash-link">#</a></h3> <p>If you need to know at runtime whether a scheme is guaranteed to work before using it (for instance, to adjust your UI based on what is available), you can check with <a href="https://pub.dev/documentation/url_launcher/latest/url_launcher/canLaunchUrl.html"><code>canLaunchUrl</code></a>.</p> <p>However, <code>canLaunchUrl</code> can return false even if <code>launchUrl</code> would work in some circumstances (in web applications, on mobile without the necessary configuration as described above, etc.), so in cases where you can provide fallback behavior it is better to use <code>launchUrl</code> directly and handle failure. For example, a UI button that would have sent feedback email using a <code>mailto</code> URL might instead open a web-based feedback form using an <code>https</code> URL on failure, rather than disabling the button if <code>canLaunchUrl</code> returns false for <code>mailto</code>.</p> <h3 id="encoding-urls" class="hash-header">Encoding URLs <a href="#encoding-urls" class="hash-link">#</a></h3> <p>URLs must be properly encoded, especially when including spaces or other special characters. In general this is handled automatically by the <a href="https://api.dart.dev/dart-core/Uri-class.html"><code>Uri</code> class</a>.</p> <p><strong>However</strong>, for any scheme other than <code>http</code> or <code>https</code>, you should use the <code>query</code> parameter and the <code>encodeQueryParameters</code> function shown below rather than <code>Uri</code>'s <code>queryParameters</code> constructor argument for any query parameters, due to <a href="https://github.com/dart-lang/sdk/issues/43838" rel="ugc">a bug</a> in the way <code>Uri</code> encodes query parameters. Using <code>queryParameters</code> will result in spaces being converted to <code>+</code> in many cases.</p> <!--?code-excerpt "lib/encoding.dart (encode-query-parameters)"?--> <pre><code class="language-dart">String? encodeQueryParameters(Map<String, String> params) { return params.entries .map((MapEntry<String, String> e) => '${Uri.encodeComponent(e.key)}=${Uri.encodeComponent(e.value)}') .join('&'); } // ··· final Uri emailLaunchUri = Uri( scheme: 'mailto', path: 'smith@example.com', query: encodeQueryParameters(<String, String>{ 'subject': 'Example Subject & Symbols are allowed!', }), ); launchUrl(emailLaunchUri); </code></pre> <h3 id="urls-not-handled-by-uri" class="hash-header">URLs not handled by <code>Uri</code> <a href="#urls-not-handled-by-uri" class="hash-link">#</a></h3> <p>In rare cases, you may need to launch a URL that the host system considers valid, but cannot be expressed by <code>Uri</code>. For those cases, alternate APIs using strings are available by importing <code>url_launcher_string.dart</code>.</p> <p>Using these APIs in any other cases is <strong>strongly discouraged</strong>, as providing invalid URL strings was a very common source of errors with this plugin's original APIs.</p> <h3 id="file-scheme-handling" class="hash-header">File scheme handling <a href="#file-scheme-handling" class="hash-link">#</a></h3> <p><code>file:</code> scheme can be used on desktop platforms: Windows, macOS, and Linux.</p> <p>We recommend checking first whether the directory or file exists before calling <code>launchUrl</code>.</p> <p>Example:</p> <!--?code-excerpt "lib/files.dart (file)"?--> <pre><code class="language-dart">final String filePath = testFile.absolute.path; final Uri uri = Uri.file(filePath); if (!File(uri.toFilePath()).existsSync()) { throw Exception('$uri does not exist!'); } if (!await launchUrl(uri)) { throw Exception('Could not launch $uri'); } </code></pre> <h4 id="macos-file-access-configuration">macOS file access configuration</h4> <p>If you need to access files outside of your application's sandbox, you will need to have the necessary <a href="https://docs.flutter.dev/desktop#entitlements-and-the-app-sandbox" rel="ugc">entitlements</a>.</p> <h2 id="browser-vs-in-app-handling" class="hash-header">Browser vs in-app handling <a href="#browser-vs-in-app-handling" class="hash-link">#</a></h2> <p>On some platforms, web URLs can be launched either in an in-app web view, or in the default browser. The default behavior depends on the platform (see <a href="https://pub.dev/documentation/url_launcher/latest/url_launcher/launchUrl.html"><code>launchUrl</code></a> for details), but a specific mode can be used on supported platforms by passing a <code>LaunchMode</code>.</p> <p>Platforms that do no support a requested <code>LaunchMode</code> will automatically fall back to a supported mode (usually <code>platformDefault</code>). If your application needs to avoid that fallback behavior, however, you can check if the current platform supports a given mode with <code>supportsLaunchMode</code> before calling <code>launchUrl</code>.</p> </section></div></div></div><aside class="detail-info-box"><a class="packages-scores" href="/packages/url_launcher/score"><div class="packages-score packages-score-like"><div class="packages-score-value -has-value"><span class="packages-score-value-number">7.85k</span><span class="packages-score-value-sign"></span></div><div class="packages-score-label">likes</div></div><div class="packages-score packages-score-health"><div class="packages-score-value -has-value"><span class="packages-score-value-number">150</span><span class="packages-score-value-sign"></span></div><div class="packages-score-label">points</div></div><div class="packages-score packages-score-downloads" title="Number of downloads of this package during the past 30 days"><div class="packages-score-value -has-value"><span class="packages-score-value-number">3.22M</span><span class="packages-score-value-sign"></span></div><div class="packages-score-label">downloads</div></div></a><h3 class="title">Publisher</h3><p><a href="/publishers/flutter.dev"><img class="-pub-publisher-shield filter-invert-on-dark" src="/static/hash-mh7qv2oc/img/material-icon-verified.svg" alt="verified publisher" width="14" height="14" title="Published by a pub.dev verified publisher"/>flutter.dev</a></p><h3 class="title">Weekly Downloads</h3><div id="-weekly-downloads-sparkline" class="weekly-downloads-sparkline" data-widget="weekly-sparkline" data-weekly-sparkline-points="gInoZz9NDACNMQwAENcLAGRiCwCS0AwAMB0MANuUDADZAwwA66ILAHz7CwBRpAsAS+UKAKb4BQAB7AUAmcUKAORWDABfAAwAm1oLAFbUCwBCWgwAlK8LAMSWCwBqLgwAyC8MALl5DABQeQoAnuwKADdmCQCWvgoAhYwKALK5CgAligsAXH8KAJ9TCwAmgQsAS1oLAP2wCgCyxgoAZr0JAOwwCwDOjgoAKegKAMxDCwBLFQoA/tUKAJMNCwBDMgoABFQJAGFSCwBeiQwAgr8KAEuzCwA="></div><h3 class="title pkg-infobox-metadata">Metadata</h3><p>Flutter plugin for launching a URL. Supports web, phone, SMS, and email schemes.</p><p><a class="link" href="https://github.com/flutter/packages/tree/main/packages/url_launcher/url_launcher" rel="ugc">Repository (GitHub)</a><br/><a class="link" href="https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+url_launcher%22" rel="ugc">View/report issues</a><br/><a class="link" href="https://github.com/flutter/packages/blob/main/CONTRIBUTING.md" rel="ugc">Contributing</a><br/></p><h3 class="title">Topics</h3><p><a class="topics-tag" href="/packages?q=topic%3Alinks" rel="nofollow">#links</a> <a class="topics-tag" href="/packages?q=topic%3Aos-integration" rel="nofollow">#os-integration</a> <a class="topics-tag" href="/packages?q=topic%3Aurl-launcher" rel="nofollow">#url-launcher</a> <a class="topics-tag" href="/packages?q=topic%3Aurls" rel="nofollow">#urls</a></p><h3 class="title">Documentation</h3><p><a class="link" href="/documentation/url_launcher/latest/">API reference</a><br/></p><h3 class="title">License</h3><p><img class="inline-icon-img filter-invert-on-dark" src="/static/hash-mh7qv2oc/img/material-icon-balance.svg" alt="" width="14" height="14" role="presentation"/>BSD-3-Clause (<a href="/packages/url_launcher/license">license</a>)</p><h3 class="title">Dependencies</h3><p><a href="https://api.flutter.dev/">flutter</a>, <a href="/packages/url_launcher_android" title="^6.3.0">url_launcher_android</a>, <a href="/packages/url_launcher_ios" title="^6.2.4">url_launcher_ios</a>, <a href="/packages/url_launcher_linux" title="^3.1.0">url_launcher_linux</a>, <a href="/packages/url_launcher_macos" title="^3.1.0">url_launcher_macos</a>, <a href="/packages/url_launcher_platform_interface" title="^2.3.0">url_launcher_platform_interface</a>, <a href="/packages/url_launcher_web" title="^2.2.0">url_launcher_web</a>, <a href="/packages/url_launcher_windows" title="^3.1.0">url_launcher_windows</a></p><h3 class="title">More</h3><p><a href="/packages?q=dependency%3Aurl_launcher" rel="nofollow">Packages that depend on url_launcher</a></p></aside></div><script type="application/ld+json">{"@context":"http\u003a\u002f\u002fschema.org","@type":"SoftwareSourceCode","name":"url\u005flauncher","version":"6.3.1","description":"url\u005flauncher - Flutter plugin for launching a URL. Supports web, phone, SMS, and email schemes.","url":"https\u003a\u002f\u002fpub.dev\u002fpackages\u002furl\u005flauncher","dateCreated":"2017-04-20T11\u003a21\u003a02.835476Z","dateModified":"2024-10-08T09\u003a59\u003a33.981010Z","programmingLanguage":"Dart","image":"https\u003a\u002f\u002fpub.dev\u002fstatic\u002fimg\u002fpub-dev-icon-cover-image.png","license":"https\u003a\u002f\u002fpub.dev\u002fpackages\u002furl\u005flauncher\u002flicense"}</script></div><div class="detail-metadata"><h3 class="detail-metadata-title"><span class="detail-metadata-toggle">←</span> Metadata</h3><div class="detail-info-box"><a class="packages-scores" href="/packages/url_launcher/score"><div class="packages-score packages-score-like"><div class="packages-score-value -has-value"><span class="packages-score-value-number">7.85k</span><span class="packages-score-value-sign"></span></div><div class="packages-score-label">likes</div></div><div class="packages-score packages-score-health"><div class="packages-score-value -has-value"><span class="packages-score-value-number">150</span><span class="packages-score-value-sign"></span></div><div class="packages-score-label">points</div></div><div class="packages-score packages-score-downloads" title="Number of downloads of this package during the past 30 days"><div class="packages-score-value -has-value"><span class="packages-score-value-number">3.22M</span><span class="packages-score-value-sign"></span></div><div class="packages-score-label">downloads</div></div></a><h3 class="title">Publisher</h3><p><a href="/publishers/flutter.dev"><img class="-pub-publisher-shield filter-invert-on-dark" src="/static/hash-mh7qv2oc/img/material-icon-verified.svg" alt="verified publisher" width="14" height="14" title="Published by a pub.dev verified publisher"/>flutter.dev</a></p><h3 class="title">Weekly Downloads</h3><div id="-weekly-downloads-sparkline" class="weekly-downloads-sparkline" data-widget="weekly-sparkline" data-weekly-sparkline-points="gInoZz9NDACNMQwAENcLAGRiCwCS0AwAMB0MANuUDADZAwwA66ILAHz7CwBRpAsAS+UKAKb4BQAB7AUAmcUKAORWDABfAAwAm1oLAFbUCwBCWgwAlK8LAMSWCwBqLgwAyC8MALl5DABQeQoAnuwKADdmCQCWvgoAhYwKALK5CgAligsAXH8KAJ9TCwAmgQsAS1oLAP2wCgCyxgoAZr0JAOwwCwDOjgoAKegKAMxDCwBLFQoA/tUKAJMNCwBDMgoABFQJAGFSCwBeiQwAgr8KAEuzCwA="></div><h3 class="title pkg-infobox-metadata">Metadata</h3><p>Flutter plugin for launching a URL. Supports web, phone, SMS, and email schemes.</p><p><a class="link" href="https://github.com/flutter/packages/tree/main/packages/url_launcher/url_launcher" rel="ugc">Repository (GitHub)</a><br/><a class="link" href="https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+url_launcher%22" rel="ugc">View/report issues</a><br/><a class="link" href="https://github.com/flutter/packages/blob/main/CONTRIBUTING.md" rel="ugc">Contributing</a><br/></p><h3 class="title">Topics</h3><p><a class="topics-tag" href="/packages?q=topic%3Alinks" rel="nofollow">#links</a> <a class="topics-tag" href="/packages?q=topic%3Aos-integration" rel="nofollow">#os-integration</a> <a class="topics-tag" href="/packages?q=topic%3Aurl-launcher" rel="nofollow">#url-launcher</a> <a class="topics-tag" href="/packages?q=topic%3Aurls" rel="nofollow">#urls</a></p><h3 class="title">Documentation</h3><p><a class="link" href="/documentation/url_launcher/latest/">API reference</a><br/></p><h3 class="title">License</h3><p><img class="inline-icon-img filter-invert-on-dark" src="/static/hash-mh7qv2oc/img/material-icon-balance.svg" alt="" width="14" height="14" role="presentation"/>BSD-3-Clause (<a href="/packages/url_launcher/license">license</a>)</p><h3 class="title">Dependencies</h3><p><a href="https://api.flutter.dev/">flutter</a>, <a href="/packages/url_launcher_android" title="^6.3.0">url_launcher_android</a>, <a href="/packages/url_launcher_ios" title="^6.2.4">url_launcher_ios</a>, <a href="/packages/url_launcher_linux" title="^3.1.0">url_launcher_linux</a>, <a href="/packages/url_launcher_macos" title="^3.1.0">url_launcher_macos</a>, <a href="/packages/url_launcher_platform_interface" title="^2.3.0">url_launcher_platform_interface</a>, <a href="/packages/url_launcher_web" title="^2.2.0">url_launcher_web</a>, <a href="/packages/url_launcher_windows" title="^3.1.0">url_launcher_windows</a></p><h3 class="title">More</h3><p><a href="/packages?q=dependency%3Aurl_launcher" rel="nofollow">Packages that depend on url_launcher</a></p></div><p class="detail-lead-back"><a class="detail-metadata-toggle">Back</a></p></div><div id="-screenshot-carousel" class="carousel"><fab id="-carousel-prev" class="mdc-fab carousel-prev carousel-nav" data-mdc-auto-init="MDCRipple" title="Previous" data-ga-click-event="screenshot-carousel-prev-click" tabindex="0"><div class="mdc-fab__ripple"></div><img class="mdc-fab__icon" src="/static/hash-mh7qv2oc/img/keyboard_arrow_left.svg" alt="previous" width="24" height="24" aria-hidden="true"/></fab><div id="-image-container" class="image-container"></div><fab id="-carousel-next" class="mdc-fab carousel-next carousel-nav" data-mdc-auto-init="MDCRipple" title="Next" data-ga-click-event="screenshot-carousel-next-click" tabindex="0"><div class="mdc-fab__ripple"></div><img class="mdc-fab__icon" src="/static/hash-mh7qv2oc/img/keyboard_arrow_right.svg" alt="next" width="24" height="24" aria-hidden="true"/></fab><p id="-screenshot-description" class="screenshot-description"></p></div></main><footer class="site-footer"><a class="link" href="https://dart.dev/">Dart language</a><a class="link sep" href="/report?subject=package%3Aurl_launcher&url=https%3A%2F%2Fpub.dev%2Fpackages%2Furl_launcher">Report package</a><a class="link sep" href="/policy">Policy</a><a class="link sep" href="https://www.google.com/intl/en/policies/terms/">Terms</a><a class="link sep" href="https://developers.google.com/terms/">API Terms</a><a class="link sep" href="/security">Security</a><a class="link sep" href="https://www.google.com/intl/en/policies/privacy/">Privacy</a><a class="link sep" href="/help">Help</a><a class="link icon sep" href="/feed.atom"><img class="inline-icon" src="/static/hash-mh7qv2oc/img/rss-feed-icon.svg" alt="RSS" width="20" height="20" title="RSS/atom feed"/></a><a class="link icon github_issue" href="https://github.com/dart-lang/pub-dev/issues/new"><img class="inline-icon" src="/static/hash-mh7qv2oc/img/bug-report-white-96px.png" alt="bug report" width="20" height="20" title="Report an issue with this site"/></a></footer><script src="/static/hash-mh7qv2oc/highlight/highlight-with-init.js" defer="defer"></script></body></html>