通过上下文操作栏在WebView中获取所选文本

oct*_*opi 5 android webview android-4.0-ice-cream-sandwich android-actionbar

众所周知,在WebView中获取所选文本很困难,因为WebView文本选择实际上是由私有类WebTextView处理的.

然而,随着最近发布的Android 4.0设计指南,通过上下文操作栏(CAB)实现这一点似乎有一线希望.它说:

只要您允许用户通过长按选择数据,请使用CAB.您可以控制CAB的操作内容,以插入您希望用户能够执行的操作.

我误解了这个吗?有没有办法通过CAB从W​​ebView检索所选文本?

在长时间单击和文本选择模式开始后,我当前可以检测到何时ActionMode启动并修改原始复制/粘贴Menu; 但是,我无法弄清楚如何实际检索所选文本.

lou*_*uie 8

使用当前的API,您无法做到这一点.

我提交了一个功能请求 - 问题24841:WebView应该允许应用程序提供自定义上下文操作栏http://code.google.com/p/android/issues/detail?id=24841

基本上,4.0中的WebView已经硬编码了自己的Contextual Action Bar(CAB).该CAB具有对WebView的引用,并且通过该引用,它可以获取所选文本.我不确定你是如何检测ActionMode启动和修改菜单的,但是如果你能够完成所有这些操作,那么你就会陷入困境,因为getSelection()目前是包私有的.我将其作为一个单独的问题提交,并将其与上一个问题相关联.