Skip to content

[webview_flutter] Scale and horizontal scroll is not working on Android on some websites #70369

@pdefuns

Description

@pdefuns

The WebView is only scrolling vertically. No horizontal scroll or scale possible.
Also getting some error

Example:

WebView(
    initialUrl: widget.url,
    gestureRecognizers: [
        Factory<VerticalDragGestureRecognizer>(
            () => VerticalDragGestureRecognizer()),
        Factory<HorizontalDragGestureRecognizer>(
            () => HorizontalDragGestureRecognizer()),
        Factory<ScaleGestureRecognizer>(
            () => ScaleGestureRecognizer()),
    ].toSet(),
    javascriptMode: JavascriptMode.unrestricted,
)

Log:

E/MethodChannel#flutter/platform_views(15920): 	at android.os.Looper.loop(Looper.java:160)
E/MethodChannel#flutter/platform_views(15920): 	at android.app.ActivityThread.main(ActivityThread.java:6923)
E/MethodChannel#flutter/platform_views(15920): 	at java.lang.reflect.Method.invoke(Native Method)
E/MethodChannel#flutter/platform_views(15920): 	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
E/MethodChannel#flutter/platform_views(15920): 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:870)
I/flutter (15920): Zone caught an error: PlatformException(error, pointerIndex out of range, null, java.lang.IllegalArgumentException: pointerIndex out of range
I/flutter (15920): 	at android.view.MotionEvent.nativeGetPointerId(Native Method)
I/flutter (15920): 	at android.view.MotionEvent.getPointerId(MotionEvent.java:2160)
I/flutter (15920): 	at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2746)
I/flutter (15920): 	at io.flutter.plugin.platform.PlatformViewsController$1.onTouch(PlatformViewsController.java:309)
I/flutter (15920): 	at io.flutter.embedding.engine.systemchannels.PlatformViewsChannel$1.touch(PlatformViewsChannel.java:173)
I/flutter (15920): 	at io.flutter.embedding.engine.systemchannels.PlatformViewsChannel$1.onMethodCall(PlatformViewsChannel.java:68)
I/flutter (15920): 	at io.flutter.plugin.common.MethodChannel$IncomingMethodCallHandler.onMessage(MethodChannel.java:233)
I/flutter (15920): 	at io.flutter.embedding.engine.dart.DartMessenger.handleMessageFromDart(DartMessenger.java:85)
I/flutter (15920): 	at io.flutter.embedding.engine.FlutterJNI.handlePlatformMessage(FlutterJNI.java:692)
I/flutter (15920): 	at android.os.MessageQueue.nativePollOnce(Native Method)
I/flutter (15920): 	at android.os.MessageQu
I/flutter (15920): #0      StandardMethodCodec.decodeEnvelope 
package:flutter/…/services/message_codecs.dart:582
I/flutter (15920): #1      MethodChannel._invokeMethod 
package:flutter/…/services/platform_channel.dart:159
I/flutter (15920): <asynchronous suspension>
I/flutter (15920): #2      MethodChannel.invokeMethod 
package:flutter/…/services/platform_channel.dart:332
I/flutter (15920): #3      AndroidViewController.sendMotionEvent 
package:flutter/…/services/platform_views.dart:788
I/flutter (15920): #4      AndroidViewController.dispatchPointerEvent 
package:flutter/…/services/platform_views.dart:873
I/flutter (15920): #5      List.forEach  (dart:core-patch/growable_array.dart:313:8)
I/flutter (15920): #6      _PlatformViewGestureRecognizer._flushPointerCache 
package:flutter/…/rendering/platform_view.dart:560
I/flutter (15920): #7      _PlatformViewGestureRecognizer.acceptGesture 
package:flutter/…/rendering/platform_view.dart:542
I/flutter (15920): #8      _CombiningGestureArenaMember.acceptGesture 
package:flutter/…/gestures/team.dart:42
I/flutter (15920): #9      GestureArenaManager.sweep 
package:flutter/…/gestures/arena.dart:157
I/flutter (15920): #10     GestureBindin

flutter doctor -v

[✓] Flutter (Channel stable, 1.22.3, on Mac OS X 10.15.7 19H2, locale de-CH)
    • Flutter version 1.22.3 at /Users/xx/Development/Tools/flutter
    • Framework revision 8874f21e79 (2 weeks ago), 2020-10-29 14:14:35 -0700
    • Engine revision a1440ca392
    • Dart version 2.10.3

 
[✓] Android toolchain - develop for Android devices (Android SDK version 28.0.3)
    • Android SDK at /Users/xx/Library/Android/sdk
    • Platform android-29, build-tools 28.0.3
    • ANDROID_HOME = /Users/xx/Library/Android/sdk
    • ANDROID_SDK_ROOT = /Users/xx/Library/Android/sdk
    • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6222593)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 12.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 12.1, Build version 12A7403
    • CocoaPods version 1.9.3

[✓] Android Studio (version 4.0)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin version 39.0.3
    • Dart plugin version 191.8423
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6222593)

[✓] VS Code (version 1.37.1)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.4.1

[✓] Connected device (3 available)
    • moto g 6 (mobile)                  • ZY322PM4WT                • android-arm • Android 9 (API
      28)
    • Android SDK built for x86 (mobile) • emulator-5554             • android-x86 • Android 9 (API
      28) (emulator)

• No issues found!

Metadata

Metadata

Assignees

No one assigned

    Labels

    P2Important issues not at the top of the work listc: proposalA detailed proposal for a change to Flutterp: webviewThe WebView pluginpackageflutter/packages repository. See also p: labels.platform-androidAndroid applications specifically

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions