Closed koukoucai closed 4 months ago
根据flutter_inappwebview
源码中的InAppWebViewChromeClient
类,可以看到打开图片选择时所用的activity,是TabMainActivity
,也就是FlutterBoostFragment
所在的容器Activity
并不是FlutterActivity
,所以无法触发inAppWebview
中依赖FlutterEngineConnectionRegistry的onActivityResult
或FlutterEngineActivityPluginBinding的onActivityResult
,也就无法把结果传回到Flutter
。
这个只能说是flutter_inappwebview
并不适配FlutterBoost
。如果要得到正确的结果,可以尝试的一种方案是在FlutterBoostFragment
的容器Activity中自行把Activity收到的onActivityResult的结果转发给Registry
或PluginBinding
的onActivityResult
。另一种方案修改InAppWebViewChromeClient
中的跳转方式,使用FlutterBoostFragment
的startActivityForResult
进行跳转,或者使用Activity Result API
做类似处理。
根据
flutter_inappwebview
源码中的InAppWebViewChromeClient
类,可以看到打开图片选择时所用的activity,是TabMainActivity
,也就是FlutterBoostFragment
所在的容器Activity
并不是FlutterActivity
,所以无法触发inAppWebview
中依赖FlutterEngineConnectionRegistry的onActivityResult
或FlutterEngineActivityPluginBinding的onActivityResult
,也就无法把结果传回到Flutter
。这个只能说是
flutter_inappwebview
并不适配FlutterBoost
。如果要得到正确的结果,可以尝试的一种方案是在FlutterBoostFragment
的容器Activity中自行把Activity收到的onActivityResult的结果转发给Registry
或PluginBinding
的onActivityResult
。另一种方案修改InAppWebViewChromeClient
中的跳转方式,使用FlutterBoostFragment
的startActivityForResult
进行跳转,或者使用Activity Result API
做类似处理。
感谢解答
请描述遇到的问题,以及您所期望的正确的结果
Android端 FlutterBoostFragment 内使用flutter_inappwebview 加载h5页面 input标签 选择相册后无法回调
请说明如何操作会遇到上述问题
项目工程:Flutter boost下面的example工程 新增 flutter_inappwebview: 5.8.0 open flutter fragment page 新增一个FlutterBoostFragment 新增一个InAppWebViewExampleScreen 加载https://www.w3schools.com/tags/tryit.asp?filename=tryhtml5_input_type_file 弹出图片选择后选择图片后展示 使用FlutterBoostActivity 作为容器新增InAppWebViewExampleScreen 加载该h5页面可以。
请问是什么原因
在下面填入关键复现代码
复现的平台
Both
Flutter SDK版本
3.7.9
FlutterBoost版本
main主分支
是否延迟初始化FlutterBoost
No
解决方案