Flutter web only two fingers to scroll on iOS 18.2
Flutter web 在 iOS 18.2 版本上只能用两指滑动滚动
issue 地址: [iOS 18.2][Web] Scrolling is broken in browsers (Safari, Chrome)
flutter 版本为 3.25.x, 低于 iOS 18.2 的设备上, 可以单指滚动
原因
Safari 在 iOS 18.2 添加了 getCoalescedEvents()
支持, 这个方法用于合并多个 touch 事件,有助于提高性能.
但是 api 是不完整的(与其他浏览器内核实现不符, 缺少了 pointerId 和 target 等返回值), 在 flutter 3.27.1 修改了 binding 部分的内容, 用于兼容: [web] Work around wrong pointerId in coalesced events in iOS Safari 18.2
解决方案
把 flutter 升级到 3.27.1 版本, 或者使用 flutter channel dev
切换到 dev 分支, 然后 flutter upgrade
升级到最新 beta 版本.
也可以将 pr 合并到本地 flutter engine, 直接构建 flutter web 项目.