1、需求背景
实现一个不全屏的,支持加载本地html资源的webview
2、结论先行
选用了官方的webview_flutter。总结了下实践的过程,分析几个插件有如下特点:
flutter_inappwebview:
问题:
1.键盘有时候收不起来.
2.文本框不响应文字输入
3.部分Android机型上,js->flutter 不通.分析查看是native层的js接口没有被回调,原生的js接口.(setJavaScriptEnable为true),高频概率性出现,危害程度可以说是致命性。
优势:
1、能加载本地h5资源
2、支持不用全屏。
除了以上问题,特别是js的调用问题 。否则这个框架是非常适合目前的场景了。
flutter_webview_plugin
1.只能全屏
2.不能加载本地H5
3.无键盘问题
需求界面是flutter ui+webview混合组成。同时加载本地h5要解析成字符串后展示,感觉有点麻烦,挺不靠谱的感觉。诸多问题,放弃。
webview_flutter:
1.解决了键盘问题(目前只是实验性,还是有出问题的概率,但还是能用)
2.IOS端不支持加载本地html。
3、官方插件。
3、优化过程
综合上踩坑总结,最后选用了webview_flutter。接下来就是解决不支持加载本地html的问题。
在Android端,加载本地本地html,只需