2024/05/05
flutterで、URLを指定してChromeなどブラウザで開くにはどうすれば良いか。
url_launcher を使うと良いという記事を見かけたので使ってみた。
//使い方のイメージ
import 'package:url_launcher/url_launcher.dart';
Future<void> openUrl(String url, BuildContext context, String errorMessage) async {
Uri uri = Uri.parse(url);
if (await canLaunchUrl(uri)) {
launchUrl(uri, webOnlyWindowName: '_blank');
} else {
throw 'このURLにはアクセスできません';
}
}
//呼び出し方
await openUrl("https://idea-lane.com/", context, "ただいま $url にアクセスできません。しばらく経ってからお試しください。");
これだけで動くのでとても便利。
ところが、デバッグ時は問題なかったのに、Webにdeployしたときだけなぜか動かない。
ブラウザの検証ツールで調べたところ、consoleに下記のエラーが出ていることが分かった。
Uncaught MissingPluginException(No implementation found for method canLaunch on channel plugins.flutter.io/url_launcher)
しかしネットで調べても「flutter clean で直った」的なコメントしか見つからず。
残念ながら自分の場合は直らなかった。
色々やっているうちに、flutter の channel が master だったことに気付き stable に戻してみる。
stableでビルドして再デプロイした結果、直った!
これで又無駄に2時間くらい使ってしまった……。
flutterはこういうのが多くてつらい。
昔使っていたDelphi 7の安定っぷりが懐かしいなぁ。
※開発日記は当時の記録をもとに作成し、必要に応じて加筆・補足しています
この記事はアイディア整理ソフト「idea Lane」の開発記録です
↓どなたでも、ユーザ登録だけで無料ですぐに使えます↓
テキストベースの思考整理ツール「idea Lane」
0
コメント / Comment