cordova-ios icon indicating copy to clipboard operation
cordova-ios copied to clipboard

SuppressesLongPressGesture / Suppresses3DTouchGesture preferences not working since iOS 15.1

Open steodor opened this issue 3 years ago • 5 comments

Bug Report

First of all thank you for your time! ❤️

Problem

SuppressesLongPressGesture / Suppresses3DTouchGesture preferences not working since iOS 15.1

What is expected to happen?

The CSS rule user-select: none; is expected to work as designed. On iOS 14.x it does work, disabling the native text selection magnifier on the specified elements, as intended.

What does actually happen?

On iOS 15.1 the CSS rule above is ignored again, so the magnifier pops up.

Information

We tried attaching both touchend and click events to the relevant elements (and more, just to make sure), to no avail.

Our app had this issue initially (a few years back), then we applied Eddy Verbruggen's fix successfully. Then the plugin got integrated into Cordova as the 2 mentioned preferences. We applied those and it worked beautifully, and still works on all iOS versions up to and including 14.x. iOS 15 seems to have broken it again.

Command or Code

  1. Set either one or both preferences (same result regardless) to config.xml in the iOS section:
<preference name="SuppressesLongPressGesture" value="true" />
<preference name="Suppresses3DTouchGesture" value="true" />
  1. We have the following CSS (scss below), a bit verbose but does the job:
body,
* {
    -webkit-touch-callout: none;
    -webkit-user-callout: none;
    -webkit-user-select: none;
    -webkit-user-drag: none;
    -webkit-user-modify: none;
    -webkit-highlight: none;
    -webkit-text-size-adjust: none;
    -moz-user-select: none;
    user-select: none;
}

input,
textarea {
    -moz-user-select: text;
    -webkit-user-select: text;
    user-select: text;
}
  1. Long press empty space or any other element than input/textarea. Magnifier pops up although it shouldn't. iOS 15 only, earlier versions behave normally.

Environment, Platform, Device

iOS 15.1 (and higher, i imagine)

Version information

cordova v.11.0.0 cordova-ios v6.2.0 cordova-cli v1.0.0 ...the rest i imagine is irrelevant since the exact same app works perfectly on an iOS 14 device and fails on iOS 15.

Checklist

  • [x] I searched for existing GitHub issues
  • [x] I updated all Cordova tooling to most recent version
  • [x] I included all the necessary information above

Thanks again! ❤️

steodor avatar Jan 17 '22 15:01 steodor

This may have been fixed in upstream WebKit here, but not made it into an iOS release yet

dpogue avatar Jan 17 '22 16:01 dpogue

Great find @dpogue, thank you! I guess we'll just wait until either there's enough activity here to attempt an external fix (again), or until that fix gets into iOS, whichever comes first.

steodor avatar Jan 18 '22 07:01 steodor

@steodor Are you able to confirm if this is still an issue in iOS 16.5?

dpogue avatar Jun 05 '23 14:06 dpogue

Hi @dpogue , i can confirm it's still an issue in iOS 16.3.1. Don't know about 16.5 yet.

steodor avatar Jun 09 '23 13:06 steodor