40

我有一个应用程序,它使用可以选择文本的网络视图。长期以来,您无法在 UIWebView 中跨块边界选择文本一直是一个烦恼。WKWebView 似乎通过其配置上的属性解决了这个问题:selectionGranularity。可能的值之一是WKSelectionGranularityCharacter

选择端点可以放置在任何字符边界。

听起来很棒!正是我需要的。除了当我在我的网络视图中设置它时,我通常根本无法再选择文本。到底是怎么回事?还有什么我需要设置的吗?有没有人弄清楚这一点?

更新:我发现了以下错误:

  1. 当一个应用中有多个 WKWebViewselectionGranularity设置为 时WKSelectionGranularityCharacter,只有最近要加载的 WKWebView 才能选择文本。我已将此归档为错误 18441138。

  2. body如果在设置为 WKSelectionGranularityCharacter的 WKWebView 的 HTML 内容中的元素上附加了一个单击处理程序selectionGranularity,则文本选择在该元素内不起作用。我已将此归档为错误 18440833。

  3. 在应用程序中的其他位置进入 UITextView 的编辑模式后,WKWebView 中的文本选择失败,直到 WKWebView 重新加载。我已将此归档为错误 18468405。

有没有人解决过这些问题?

4

2 回答 2

2

自 iOS 13 起,这些问题和其他问题都已修复。

于 2019-11-22T20:51:40.550 回答
1

有几个已知的错误仍未修复。

作为一种解决方法,您可以执行 JavaScript 来获取选定的文本。

window.getSelection().toString()

文档

于 2019-06-02T18:32:12.750 回答