[我们有一个使用WKWebview的应用程序,但是将allowsLinkPreview
设置为false
,因为我们不希望链接预览行为。似乎从iOS 13.4开始,在没有具有3D触摸功能的设备(较旧的设备和较新的iPhone机型)上,将allowsLinkPreview
设置为false also将禁用页面中的所有文本选择!对于我们的应用程序,文本选择至关重要。
我想出了in the documentation:两行之间的理论读物>
按住Web视图中的手势。在iOS中,此属性在支持3D Touch的设备上可用。
在运行iOS 13及更高版本的设备上,无论设备是否支持3D Touch,人们都可以使用触摸并按住手势打开上下文菜单。在3D Touch设备上,该手势可以更快地显示上下文菜单。
似乎是一个错误,禁用链接预览会禁用all
我唯一能解决的方法是将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触摸的设备上...
我遇到了同样的问题,这就是我解决的方法。
这可能与已知的Webkit错误有关,该bug可能已经修复(在撰写本文时:]