我尝试过使用flutter_inappwebview或flutter_webview_pro,我可以选择文件或截图,但不幸的是,在我尝试选择文件后,它在输入字段中显示错误消息,并且文件未上传。
C:\fakepath\FILENAME_com.android.captiveportallogin
网络视图正在加载,其他输入正在工作,控制台中没有错误。
我正在使用 Flutter SDK 2.10.0 和最新版本的 webview 插件。
其他人也遇到类似的问题吗?
这是 Flutter 中长期存在的问题,https://github.com/flutter/flutter/issues/27924 特别是在 Android 上。但是,通过
webview_flutter 4.0.2
,此功能已得到修复,现在可以完美运行。
在
initState
中,只需调用以下代码即可
if (Platform.isAndroid) {
final androidController = controller.platform as AndroidWebViewController;
await androidController.setOnShowFileSelector(_androidFilePicker);
}
现在,在 WebView 上按下每个文件上传按钮时,都会调用
_androidFilePicker
函数。在此功能中,您可以使用任何文件选择器来选择并上传文件。如果您需要详细了解,有一篇很棒的博客文章,其中包含有关使用 Flutter 上传文件的代码片段。