关于如何在UIWebView获取选定的文本,有很多指南,但是我似乎找不到任何有关如何检测选择变化的指南。 我知道我可以在其他地方简单地检测出水龙头,并始终获得最新的选择,但是我想创建一个包含所有这些功能的独立视图。

我目前有一个包含UIWebView实例并处理解析并将内容传递到Web视图的视图。 据我所知,检测轻敲将需要自定义窗口实现( 此处指示)。 我想将关注点分开,并尽可能避免任何自定义窗口实现。

有什么想法可以在视图中实现吗? 我已经尝试过javascript,但我想我没有那么干。

===============>>#1 票数:1 已采纳

您可以使用document.addEventListener("selectionchange") ,只要选择更改,该document.addEventListener("selectionchange")就会触发,并将这些更改通过网桥转发给Obj-C。

桥:

  1. WebViewJavascriptBridge
  2. JavaScript核心

示例代码:

document.addEventListener("selectionchange", function(){
    bridge.send("selectionchange"); // WebViewJavaScriptBridge
    bridge.selectionChanged();  // JavaScriptCore
}, false);

===============>>#2 票数:0

如果我没有完全误会,则无法使用UIWebView和javascript组合来检测选择范围是否发生了变化。 我的解决方案是轮询选择范围,而不是通知其更改。 目前,我不需要实时更新,因此仅知道是否有选择就足够了。 根据需要检索文本选择,对于选择更改,我使用UITapGestureRecognizer

为了清除选择,我不得不使用一个小的延迟。 点击后不会立即清除选择。

- (void)tap:(id)sender
{    
    [self updateSelection];
    // A simple hack to detect when selection is cleared.
    [self performSelector:@selector(updateSelection) withObject:self afterDelay:0.5];
}

  ask by mkko translate from so

未解决问题?本站智能推荐: