Я использую btwebview, чтобы получить выделение текста и обработать его. Проблема в том, что когда я использую longPress с жестовым детектором, также запускается выбор по умолчанию, если я переопределяю onTouchEvent и возвращаю true, проблема решена, но я не могу нажать ни одну кнопку или выделенную ссылку в веб-просмотре, поэтому я не могу получить доступ к сноскам или видео вставлен в веб-просмотр, и вызов shouldOverrideUrlLoading перестает вызываться.
public void init(Context context) {
System.out.println("BTWebview init");
this.context = context;
this.getSettings().setJavaScriptEnabled(true);
gestureScanner = new GestureDetector(this);
this.setOnTouchListener(new View.OnTouchListener() {
public boolean onTouch(View v, MotionEvent event) {
System.out.println("event "+event.toString() );
return gestureScanner.onTouchEvent(event);
}
});
setInitialScale(100);
addJavascriptInterface(new MyJavaScriptInterface(), "HTMLOUT");
}
@Override
public boolean onTouchEvent(MotionEvent event) {
System.out.print("on touch event "+ event.toString());
return true;
}
@Override
public void onLongPress(MotionEvent e) {
// TODO Auto-generated method stub
// TODO Auto-generated method stub
System.out.println("gesture listener onLongPress");
mSelection = true;
if(!this.isInSelectionMode()){
System.out.println("onLongClick in selection mode");
mSelection = true;
}
this.loadUrl("javascript:android.selection.longTouch();");
mScrolling = true;
System.out.println("onLongClick");
}