この記事はAIが作成しております。
URL ランチャーパッケージ: url_launcher
概要
url_launcher
は、URLを開くためのFlutterプラグインです。
プラットフォームサポート
Android | iOS | Linux | macOS | Web | Windows |
---|---|---|---|---|---|
Support | 11.0+ | Any | 10.14+ | Any | Windows 10+ |
使用方法
このプラグインを使用するには、pubspec.yaml
ファイルで url_launcher
を依存関係として追加します。
dependencies: url_launcher: ^6.1.12
サンプルコード
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');
}
}
設定
iOS
canLaunchUrl
に渡すURLスキームを Info.plist
ファイルに LSApplicationQueriesSchemes
エントリとして追加してください。追加しない場合、canLaunchUrl
は常に false
を返します。
Android
canLaunchUrl
に渡すURLスキームを AndroidManifest.xml
に <queries>
エントリとして追加してください。Android 11(API 30)以降では必要です。
サポートされるURLスキーム
提供されたURLはホストプラットフォームに直接渡され、プラットフォームとインストールされているアプリに依存します。
一般的な使用例:
https:<URL>
: デフォルトのブラウザで<URL>
を開くmailto:<email address>?subject=<subject>&body=<body>
: デフォルトのメールアプリで<email address>
にメールを作成tel:<phone number>
: デフォルトの電話アプリで<phone number>
に電話をかけるsms:<phone number>
: デフォルトのメッセージングアプリで<phone number>
にSMSを送信file:<path>
: デフォルトのアプリでファイルやフォルダを開く(デスクトッププラットフォーム向け)
サポートされるスキームの確認
canLaunchUrl
を使用してランタイムでサポートされるスキームを確認できます。ただし、canLaunchUrl
が false
を返す場合でも、launchUrl
は一部の場合で機能することがあります。
URLのエンコード
URLは正しくエンコードする必要があります。通常、Uriクラスが自動的に処理しますが、http
や https
以外のスキームの場合、クエリパラメータに Uri
の代わりに encodeQueryParameters
関数を使用することが推奨されています。
ファイルスキームの処理
file:
スキームはデスクトッププラットフォーム(Windows、macOS、Linux)で使用できます。ファイルやフォルダが存在するか確認してから launchUrl
を呼び出すことをおすすめします。
ブラウザ対アプリ内の処理
一部のプラットフォームでは、Web URLはアプリ内のWebビューまたはデフォルトのブラウザで開けます。詳細は launchUrl を参照してください。