flutter webview键盘无法显示

nx7onnlm  于 2023-04-22  发布在  Flutter
关注(0)|答案(5)|浏览(285)

我试着整合了webview,在扑翼app中,添加了示例中的代码后,页面加载正常,但是当我点击页面中的输入框时,没有软键盘弹出

vawmfj5a

vawmfj5a1#

这个问题只发生在Android上,这是一个已知的问题在这里. https://github.com/flutter/flutter/issues/19718 .
如果你的应用不需要webview与其他Flutter小部件在同一屏幕上,我推荐这个来自Flutter社区的webview库。这里没有键盘问题。https://pub.dartlang.org/packages/flutter_webview_plugin

hi3rlvi2

hi3rlvi22#

我已经尝试了多种方法,但最后我已经通过脚手架修复了它,现在我的键盘正在打开。
只需将WebView Package 在Scaffold小部件中,并在Scaffold中应用以下属性。

resizeToAvoidBottomInset: false,
5rgfhyps

5rgfhyps3#

我知道现在已经很晚了,但是把webview版本改为v3.0.0实际上解决了我的问题。

voj3qocg

voj3qocg4#

这个暂时可以用,希望扑翼队快点修好。
您需要在Android Studio中打开Android项目以查看所有依赖项,并在webview_flutter
修复最新版本的代码,除了导入

import android.app.Activity;
import io.flutter.app.FlutterApplication;

变更:

webView = new InputAwareWebView(context, containerView);

收件人:

Context activityContext = context;
Context appContext = context.getApplicationContext();
if (appContext instanceof FlutterApplication) {
  Activity currentActivity = ((FlutterApplication) appContext).getCurrentActivity();
  if (currentActivity != null) {
    activityContext = currentActivity;
  }
}
webView = new InputAwareWebView(activityContext, containerView);

原始答案在这里:@ryanhzhttps://github.com/flutter/flutter/issues/25767#issuecomment-588603862

pkbketx9

pkbketx95#

把它添加到initState()中就解决了这个问题。
我只在Android设备上遇到过这个问题

void initState() {
    if (Platform.isAndroid) WebView.platform = SurfaceAndroidWebView();
    super.initState();
  }

相关问题