WKWebview允许LinkPreview假选择文本中断

问题描述 投票:1回答:2

[我们有一个使用WKWebview的应用程序,但是将allowsLinkPreview设置为false,因为我们不希望链接预览行为。似乎从iOS 13.4开始,在没有具有3D触摸功能的设备(较旧的设备和较新的iPhone机型)上,将allowsLinkPreview设置为false also将禁用页面中的所有文本选择!对于我们的应用程序,文本选择至关重要。

我想出了in the documentation:两行之间的理论读物>

在iOS中,此属性在支持3D Touch的设备上可用。

在运行iOS 13及更高版本的设备上,无论设备是否支持3D Touch,人们都可以使用触摸并按住手势打开上下文菜单。在3D Touch设备上,该手势可以更快地显示上下文菜单。

似乎是一个错误,禁用链接预览会禁用all

按住Web视图中的手势。

我唯一能解决的方法是将allowsLinkPreview设置为true,然后通过the WKUIDelegate protocol禁用上下文菜单。这将禁用单击链接的弹出窗口,但不会禁用单击图像的弹出窗口。而且,它仍然允许用户将链接拖放到safari中的分屏视图中,这是我们不希望的。

关于在完全允许文本选择的同时完全禁用链接预览/上下文菜单/拖放行为的任何建议,将不胜感激!

UPDATE

由于我控制了应用程序的内容,因此可以使用以下CSS禁用图像按住功能:-webkit-touch-callout: none;因此,我剩下的问题只是不允许将交互作用从WKWebView中拖出应用程序。

UPDATE 2

同样,我可以使用-webkit-user-drag: none;来禁用链接的拖动,但是了解一个非css修复对我来说似乎是Apple bug还是有用的。

我们有一个使用WKWebview的应用程序,但由于我们不希望链接预览行为,因此将allowLinkPreview设置为false。似乎从iOS 13.4开始,在没有3D触摸的设备上...

ios swift wkwebview 3dtouch ios13.4
2个回答
0
投票

我遇到了同样的问题,这就是我解决的方法。


0
投票

这可能与已知的Webkit错误有关,该bug可能已经修复(在撰写本文时:]

© www.soinside.com 2019 - 2024. All rights reserved.