检测 WebView 中的选择更改

Detecting selection changes in WebView

我能够使用以下方法获取所选文本:

webview.evaluateJavascript("(function(){return window.getSelection().toString()})()",
    new ValueCallback<String>()
    {
        @Override
        public void onReceiveValue(String value)
        {
            selected = value;
            Log.v(TAG, "SELECTION:" + value);
        }
    }
);

onTouchEvent 检测到的运动事件是 ACTION_UP 时,我检测到第一个选择。

webview.setOnTouchListener(new View.OnTouchListener() {
    public boolean onTouch(View v, MotionEvent event) {
        int action = event.getAction();
        if(event.getAction() == MotionEvent.ACTION_UP)
        {
           //webview started selection a word
        }
    }
});

我的问题是能够使用处理程序检测选择何时更改。不幸的是 ACTION_MOVEACTION_DOWN 在使用默认选择处理程序更改选择时没有被调用。

请注意,当我使用 ActionMode CallBack 功能时,默认选择不起作用。

与其尝试管理触摸,不如尝试让系统为您完成:

@Override
public void onReceiveValue(String value)
{
    Log.v(TAG, "SELECTION:" + value);
}

可能... selection change ? :)