Flutter 1.9でWebが統合されましたが、アプリ内でリンクを開くためには、ひと工夫必要だったので共有します。
url_launcher
iOSやAndroidだけであれば、url_launcher
で問題ありません。
しかし、url_launcher
はplatform channelsを使ってネイティブのWebViewを呼んでいるので、Webでは動きません。
dart:html
Webでリンクを開く方法として、dart:html
を使う方法があります。
import 'dart:html' as html';
html.window.open(url, '');
しかし、dart:html
をimportするとiOSやAndroidのビルドが失敗してしまいます。
url_launcher_web
url_launcher_web
はurl_launcher
と同じくFlutter謹製のプラグインです。
https://pub.dev/packages/url_launcher_web
使い方は非常に簡単で、pubspec.yaml
に以下を記述するだけです。
pubspec.yaml
...
dependencies:
...
url_launcher: ^5.1.4
url_launcher_web: ^0.1.0
...
あとは、url_launcher
と同じです。
import 'package:url_launcher/url_launcher.dart';
launch(url);
iOSやAndroidだけでなく、Webでも外部リンクを開くことができます。