检测WebView中的选择更改

时间:2016-07-04 10:17:05

标签: android android-webview selection

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

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功能时,默认选择将停止工作。

1 个答案:

答案 0 :(得分:1)

尝试让系统为您完成操作,而不是试图管理触摸:

How to get the selected text of webview in ActionMode override

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

可能.... selection change ? :)