即使禁用了文本选择,IOs Cordova 长按也会显示文本选择放大镜,如何删除?

Posted

技术标签:

【中文标题】即使禁用了文本选择,IOs Cordova 长按也会显示文本选择放大镜,如何删除?【英文标题】:IOs Cordova long-press shows text-select magnifying glass even with text-selection disabled, how to remove? 【发布时间】:2015-12-25 01:32:59 【问题描述】:

我有一个非常奇怪的问题。在 ios 上的 Cordova 应用程序中,当我长按应用程序中的任何位置时,我会弹出一个文本选择放大镜。

例子:

顶部的气泡锁定在屏幕顶部,当我的手指左右移动时,它会跟随我的 x 位置。

我尝试添加以下 css,人们说应该可以解决我的问题:

* 
    -webkit-tap-highlight-color: rgba(0,0,0,0);
    -webkit-touch-callout: none;
    -webkit-user-select: none;

这没有帮助。查看 web-inspector 中的内容,我可以确认该 css 已成功添加到所有内容中。我尝试了很多普通touch-callout: noneuser-select: none 的不同变体,每个人都建议,但似乎没有任何帮助。

我还尝试删除所有 javascript 和所有 CSS,除了上面提到的一个简单变体,放大镜仍然出现。

我怎样才能让它消失?是否有任何插件可能导致此问题?非常感谢任何帮助。

Cordova 插件:

com.mbppower.camerapreview cordova-plugin-statusbar cordova-plugin-whitelist 离子插件键盘 org.apache.cordova.camera org.apache.cordova.console org.apache.cordova.device org.apache.cordova.dialogs org.apache.cordova.file org.apache.cordova.file-transfer org.apache.cordova.network-信息 org.apache.cordova.vibration

科尔多瓦版本:5.1.1 iPhone 5s iOS 版本:9.0.1

【问题讨论】:

global disable magnifying glass on iOS 9 in meteor cordova app的可能重复 @jcesarmobile 我后来也发现了,但这只是在大量搜索各种事情之后。 该修复在 iOS 15.1 中不再有效。见github.com/apache/cordova-ios/issues/1216 【参考方案1】:

感谢您的 Automatico!使我免于更多的挫败感。

然而,从那时起,该代码似乎已合并到主线cordova中,只需添加即可启用

<preference name="SuppressesLongPressGesture" value="true" /> 到 config.xml

这对我来说非常有效!

这是引入它的提交和注释

https://github.com/apache/cordova-ios/commit/1ad9951c80dbf97281e763f5f27a9bc8852c0537

【讨论】:

谢谢!这应该是现在公认的答案。更令人困惑的是,我在 iphone 6 plus 上看不到放大气泡,但在 6 和模拟器上确实看到了。 这肯定适用于 iOS 11。这应该是公认的答案。 由于 WebKit 中的回归错误,这不再适用于 iOS 15.1。见github.com/apache/cordova-ios/issues/1216【参考方案2】:

显然,在 iOS 9 中有一个错误导致 -webkit-user-select: none; 不起作用。有一个插件可以解决这个问题

https://github.com/EddyVerbruggen/cordova-plugin-ios-longpress-fix

感谢 Frederik Wessberg https://***.com/a/32737049/741850

【讨论】:

以上是关于即使禁用了文本选择,IOs Cordova 长按也会显示文本选择放大镜,如何删除?的主要内容,如果未能解决你的问题,请参考以下文章

H5移动端页面禁用长按选中文本

Android:为啥长按也会触发正常点击?

如何翻译 ios 科尔多瓦长按。

解决ios长按图片出现阴影问题

如何禁用log press cordova android的默认行为

如何只屏蔽headerView上的长按事件