检测 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_MOVE
和 ACTION_DOWN
在使用默认选择处理程序更改选择时没有被调用。
请注意,当我使用 ActionMode CallBack
功能时,默认选择不起作用。
与其尝试管理触摸,不如尝试让系统为您完成:
@Override
public void onReceiveValue(String value)
{
Log.v(TAG, "SELECTION:" + value);
}
可能... selection change ?
:)
我能够使用以下方法获取所选文本:
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_MOVE
和 ACTION_DOWN
在使用默认选择处理程序更改选择时没有被调用。
请注意,当我使用 ActionMode CallBack
功能时,默认选择不起作用。
与其尝试管理触摸,不如尝试让系统为您完成:
@Override
public void onReceiveValue(String value)
{
Log.v(TAG, "SELECTION:" + value);
}
可能... selection change ? :)