【ライブラリ紹介】url_launcher

Flutter

この記事はAIが作成しております。

URL ランチャーパッケージ: url_launcher

概要

url_launcher は、URLを開くためのFlutterプラグインです。

プラットフォームサポート

AndroidiOSLinuxmacOSWebWindows
Support11.0+Any10.14+AnyWindows 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 を使用してランタイムでサポートされるスキームを確認できます。ただし、canLaunchUrlfalse を返す場合でも、launchUrl は一部の場合で機能することがあります。

URLのエンコード

URLは正しくエンコードする必要があります。通常、Uriクラスが自動的に処理しますが、httphttps 以外のスキームの場合、クエリパラメータに Uri の代わりに encodeQueryParameters 関数を使用することが推奨されています。

ファイルスキームの処理

file: スキームはデスクトッププラットフォーム(Windows、macOS、Linux)で使用できます。ファイルやフォルダが存在するか確認してから launchUrl を呼び出すことをおすすめします。

ブラウザ対アプリ内の処理

一部のプラットフォームでは、Web URLはアプリ内のWebビューまたはデフォルトのブラウザで開けます。詳細は launchUrl を参照してください。

Buy me a coffee!

Flutterアプリ開発
シェアする
sogaをフォローする
タイトルとURLをコピーしました