url_launcher
とは、flutterのアプリ内でWebサイトを表示したい時などに使用します。url_launcher
を使用することで、flutterのアプリ内でURLのサイトを表示したりブラウザを起動してWebページに遷移させることができるようになります。
イメージとしては以下の画像のような感じです。
まずはアプリにurl_launcher
のパッケージをインストールをします。パッケージのインストール先はpubspec.yaml
ファイルです。
url_launcher
のパッケージはこちらになります。
pubspec.yaml
ファイルのdev_dependencies
に以下のように記述します。
※pubspec.yaml
ファイルは非常にデリケートなので記述する箇所のindent等には注意が必要です。
pubspec.yaml
dependencies:
flutter:
sdk: flutter
url_launcher: ^6.0.18
dev_dependencies
の箇所に上記のように記述したら、画面上のpub get
ボタン、もしくはターミナルでflutter pub get
を入力して実行します。
メッセージやターミナルでエラーが吐かれなければ、アプリにurl_launcher
のインストールが完了したことになります。
・main.dartファイル
import 'package:flutter/material.dart';
import 'package:url_launcher/url_launch_page.dart';
void main() {
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({Key? key}) : super(key: key);
Widget build(BuildContext context) {
return const MaterialApp(
//画面右上の赤いバーナーを消す
debugShowCheckedModeBanner: false,
home: UrlLaunchePage(),
);
}
}
・url_launch_page.dartファイル
import 'package:flutter/material.dart';
import 'package:url_launcher/url_launcher.dart';
class UrlLaunchePage extends StatelessWidget {
const UrlLaunchePage({Key? key}) : super(key: key);
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: const Text('Url Launcher'),
),
body: Center(
child: ElevatedButton(
child: const Text('Urlを開く'),
onPressed: () => _openUrl(),
),
),
);
}
void _openUrl() async {
const url = 'https://www.kamo-it.org/'; //←ここに表示させたいURLを入力する
if (await canLaunch(url)) {
await launch(
url,
forceSafariVC: true,
forceWebView: true,
);
} else {
throw 'このURLにはアクセスできません';
}
}
}
void _openUrl() async {
const url = 'https://www.kamo-it.org/';
if (await canLaunch(url)) {
await launch(
url,
forceSafariVC: true,
forceWebView: true,
);
} else {
throw 'このURLにはアクセスできません';
}
}
launch()と記述することでurl_launcher
を利用できるようになります。launchの部分で実装したい機能をカスタマイズしていく感じになります。
forceSafariVC
は、iOSでの挙動を指定するメソッドでfalseにするとSafariを開いてURLのサイトを開く挙動になります。trueにすると、アプリ内でサイトを開く挙動になります。つまり、アプリとは別のSafariタグを開いてURLのサイトを開く挙動をしたい場合は、falseにすることで実装できます。
forceWebView
はAndroidでの挙動を指定するメソッドでfalseにするとブラウザを開いてURLのサイトを開く挙動になります。trueにすると、アプリ内でブラウザを起動してサイトを開く挙動になります。つまり、アプリとは別のタグを開いてURLのサイトを開く挙動をしたい場合は、falseにすることで実装できます。
いかがでしたでしょうか。意外と簡単にブラウザを起動してWebサイトを表示することができたのではないかと思います。
url_launcher
を使うことによって、URLを開いた時の処理やUIなどを記述せずにWebサイトのページ遷移を実装することができます。
今回はurl_launcher
というパッケージについて紹介しました。Flutterには他にも便利なライブラリーが豊富に用意されています。
筆者である私自身、便利なライブラリーを使って開発コストを下げつつ、アプリケーションのクオリティーを上げられるように日々勉強をしています。その中で私自身がお勧めする便利なライブラリーがまとめられているサイトは以下の通りです。
・https://github.com/Solido/awesome-flutter
他にもお勧めのライブラリーやまとめのサイトがございましたらご連絡頂けると幸いです。
https://qiita.com/ryota47/items/0cd30257f063c06df1b8 https://naipaka.hatenablog.com/entry/2021/08/05/091411
可茂IT塾ではFlutterインターンを募集しています!可茂IT塾のエンジニアの判断で、一定以上のスキルをを習得した方には有給でのインターンも受け入れています。
Read More可茂IT塾ではFlutterインターンを募集しています!可茂IT塾のエンジニアの判断で、一定以上のスキルをを習得した方には有給でのインターンも受け入れています。
Read More