webview_flutterのAndroidキーボード入力の不具合の対応方法【保存版】

[ この記事を全て読んだ場合 ] 約 < 1 分間
○ 記事にPRが含まれることがあります。

webview_flutter(ウェブビュー フラッター)プラグインのAndroidキーボード不具合の直し方を伝授!

 

webview_flutterのバージョンアップで、
Androidでのキーボード操作が、やっと直った!

 

Android端末において、
文字をひとつ入力するごとに
自動的に確定がかかって、
固まってしまう不具合があったのですが……

それが直せます!!

 

参考 ※ 英語で書いてあります。
https://pub.dev/documentation/webview_flutter/latest/

※ Flutter SDKのバージョンアップと、
 この参考に書いてあるような
 ソースコードの追加や設定し直しは必要。

 

上記の参考ページは英語なので……
対応(修正)方法を、以下に簡単にまとめました。

 

4つの手順で完了できます!
困っている方は、参考にしてください。

 

対応方法

手順1

 

pubspec.yaml で
webview_flutter: ^1.0.1
と記載。

 

※ 1.0.1は、2020年10月現在のバージョンなので、
 もっと、上のバージョンになっていれば、そちらを記載!

 

手順2

 

Android時のための特別処理の前準備。

 

ソースコードで、
import ‘dart:io’;
を呼び出すようにする。

 

後で、Platform.isAndroid
といったようにPlatformで使うので、その準備!

 

例)
import ‘dart:io’;

import ‘package:webview_flutter/webview_flutter.dart’;

 

手順3

 

Android時のための特別処理が必要。

 

void initState()の
super.initState();の下で、
if (Platform.isAndroid) WebView.platform = SurfaceAndroidWebView();
を書く。

 

例)
super.initState();

if (Platform.isAndroid) WebView.platform = SurfaceAndroidWebView();

 

全体 例)
import ‘dart:io’;

import ‘package:webview_flutter/webview_flutter.dart’;

class WebViewExample extends StatefulWidget {
@override
void initState() {
super.initState();
if (Platform.isAndroid) WebView.platform = SurfaceAndroidWebView();
}

@override
Widget build(BuildContext context) {
return WebView(
initialUrl: ‘https://flutter.dev’,
);
}
}

 

手順4

 

最小SDKバージョンを19に上げる。

 

/android/app/build.gradle

minSdkVersion 19
に変更。これで、完了!簡単!!

 

例)
android {
defaultConfig {
minSdkVersion 19
}
}

 

上記を対応しても、問題が出た場合

 

webview_flutterプラグインの
1.0以上を使うには、
Flutter SDKのバージョンも上げる必要がある。

 

アプリをテスト起動しようとすると英語で
Flutter SDKのバージョンが古くて使えない
みたいなエラーが出る。

(エラー文を保存しておくのを忘れました……)

 

Flutterをインストールした
ディレクトリで、コマンド

flutter –version

でバージョンを確認。

 

コマンド

flutter upgrade

でバージョンアップが出来る。

 

完了したら、再度、コマンド

flutter –version

で、Flutter SDKのバージョンが
上がっていることを確認する。

 

コメントを残す