fix: WebView 手势接管偶发失败

This commit is contained in:
Booker
2026-06-10 13:14:54 +07:00
parent 97e8abace8
commit 804b83af66

View File

@@ -2,6 +2,8 @@ import 'dart:async';
import 'dart:convert'; import 'dart:convert';
import 'dart:io'; import 'dart:io';
import 'package:flutter/foundation.dart';
import 'package:flutter/gestures.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter/services.dart'; import 'package:flutter/services.dart';
import 'package:permission_handler/permission_handler.dart'; import 'package:permission_handler/permission_handler.dart';
@@ -105,6 +107,11 @@ class H5ShellPage extends StatefulWidget {
} }
class _H5ShellPageState extends State<H5ShellPage> with WidgetsBindingObserver { class _H5ShellPageState extends State<H5ShellPage> with WidgetsBindingObserver {
static final Set<Factory<OneSequenceGestureRecognizer>>
_webViewGestureRecognizers = <Factory<OneSequenceGestureRecognizer>>{
Factory<EagerGestureRecognizer>(() => EagerGestureRecognizer()),
};
late H5Line _h5Line; late H5Line _h5Line;
late _H5LineWebViewSlot _lineSlot; late _H5LineWebViewSlot _lineSlot;
@@ -905,6 +912,7 @@ class _H5ShellPageState extends State<H5ShellPage> with WidgetsBindingObserver {
PlatformWebViewWidgetCreationParams params = PlatformWebViewWidgetCreationParams params =
PlatformWebViewWidgetCreationParams( PlatformWebViewWidgetCreationParams(
controller: _lineSlot.controller.platform, controller: _lineSlot.controller.platform,
gestureRecognizers: _webViewGestureRecognizers,
); );
if (_lineSlot.controller.platform is AndroidWebViewController) { if (_lineSlot.controller.platform is AndroidWebViewController) {