FlutterのWebviewを試した

技術情報

はじめに

ハイブリッドアプリを Cordova とか Capacitor なんかで作ることがあるんだけど、微妙に痒いところに手が届かないことが多くて、結局ネイティブを触ることになります・・・。
Capacitor は随分と簡単になったんですが、それでもプラグイン作るのは大変です・・・。

どうして僕はハイブリッドアプリを作るのかというと、Web屋なのと、今更2つのプラットフォームの言語を触りたくないからです。前者はまあいいとしても、後者が多分一番の理由です。

Web屋ならWeb屋らしくReactNativeやればいいんですけど、コンポーネントが決まったものしか使用できない感じがして、それならCapacitorでいいかなと。

でも最近はFlutterもいいかもしれないと思い始めてきました。
Googleお手製のクロスプラットフォーム開発ができます。最近はLinuxでも動くようになったみたいです。

既存のプログラムをFlutterで書き直すのは大変なので、WebView部分をそのままFlutterで動かせないものかと調べてみました。

FlutterのWebviewプラグイン

調べてみると以下の3種類があるみたいです。

  • webview_flutter (標準)
  • flutter_inappwebview
  • flutter_webview_plugin

やりたいことはWebviewを表示しつつ、アプリ用に画面の一部分をFlutterで制御(フロートボタンの配置みたいな)ことをするには、webview_flutterかflutter_inappwebviewを使用するしか無いようです。

flutter_webview_pluginは画面全部持っていかれます。

webview_flutterとflutter_inappwebviewを試したところ、やりたいことはできそうな感じですが、致命的なバグがあります。
それは、Androidでは日本語入力できないんです。それに、webview_flutterでは更にselectのようなプルダウンメニューを使用するとアプリがクラッシュします

嘘でしょ・・・。

webview_flutterはGithubのスターが13.3kもあるのに。使えないじゃんこれ。

まだ僕にはFlutterは早かったようです。この先、修正されるのを待つしか無いかな。issueを追いかけてたらもうすぐ修正される感じだし。

とはいえFlutterとDartは興味深いのでこれからも勉強したい。

コメント

タイトルとURLをコピーしました