642 {
643 switch (_blockingPolicy) {
645
646 break;
648
649 self.delayingRecognizer.state = UIGestureRecognizerStateEnded;
650
651
652
653
654
655
656
657
658
659 if (@available(iOS 26.4, *)) {
660
661
662 } else if (@available(iOS 26.0, *)) {
663
664
665
666
667 NSNumber* isWorkaroundDisabled =
668 [[NSBundle mainBundle] objectForInfoDictionaryKey:@"FLTDisableWebViewGestureReset"];
669 if (!isWorkaroundDisabled.boolValue) {
670 [self searchAndFixWebView:self.embeddedView];
671 }
672 } else if (@available(iOS 18.2, *)) {
673
674
675
677 [self removeGestureRecognizer:self.delayingRecognizer];
678 [self addGestureRecognizer:self.delayingRecognizer];
679 }
680 }
681
682 break;
684 if (self.delayingRecognizer.touchedEndedWithoutBlocking) {
685
686
687
688 self.delayingRecognizer.state = UIGestureRecognizerStateEnded;
689 } else {
690
691
692
693 self.delayingRecognizer.shouldEndInNextTouchesEnded = YES;
694 }
695 break;
696 default:
697 break;
698 }
699}
@ FlutterPlatformViewGestureRecognizersBlockingPolicyEager
@ FlutterPlatformViewGestureRecognizersBlockingPolicyWaitUntilTouchesEnded
@ FlutterPlatformViewGestureRecognizersBlockingPolicyDoNotBlockGesture