2012-09-06 13 views
5

Mam webView. WebView pokazuje html z tekstem, obrazami, przyciskami itp.
Chcę zrobić kilka rzeczy.

1) Ten użytkownik nie może wybrać tekstu w webView

2) To samo zachowanie kliknięcia i długie kliknięcie przyciskiem.Zawartość przeglądarki Android nie można wybrać

Zrobiłem następujące rzeczy dla rozwiązać moje problemy: Przede wszystkim, dodałem do html stylu strony:

body { 
    ... 
    -webkit-user-select: none; 
    -webkit-touch-callout: none; 
    ... 
} 

Ale to mi nie pomaga. To rozwiązanie nie działa na wszystkich androidach.
Próbowałem więc dodać słuchacza dotykowego do webView.

Kodeks słuchacza:

webView.setOnTouchListener(new OnTouchListener() { 

    private float prevX; 
    private float prevY; 

    @Override 
    public boolean onTouch(View v, MotionEvent event) { 

     boolean handled = true; 
     if (MotionEvent.ACTION_DOWN == event.getAction()) { 
      prevX = event.getX(); 
      prevY = event.getY(); 
     } else if (MotionEvent.ACTION_UP == event.getAction()) { 
      if (Math.abs(event.getX() - prevX) < 50 
        && Math.abs(event.getY() - prevY) < 50) { 
       handled = (event.getEventTime() - event 
         .getDownTime()) > 200; 
      } 
     } 

     Log.d("-------------------------------------------------", ""+handled); 

     return handled; 
    } 

}); 

Ale to nie działało, może zrobiłem coś złego? Potem próbowałem dodać długim kliknięciem słuchacza:

webView.setOnLongClickListener(new OnLongClickListener() { 

    @Override 
    public boolean onLongClick(View v) { 
     v.performClick(); 
     return true; 
    } 
}); 

To rozwiązanie rozwiązuje tylko pierwszy problem.

Więc, gdzie się pomyliłem?

+0

Czy chcesz, aby Twój widok nie był klikalny ani nie był inny? proszę opracować ... –

+0

Chcę, aby ten widok był klikalny, ale niektóre części strony html nie powinny być klikalne. Nie chcę, aby ten użytkownik mógł tworzyć kopie części tekstu na stronie html. Ale na stronie html mam wejścia i przyciski ... – yugico

+0

Dzięki za poprawki błędów w gramatyce ... – yugico

Odpowiedz

0

Spróbuj użyć addJavascriptInterface(); WebView. Utwórz wewnętrzną klasę aktywności. Klasa jest interfejsem między Androidem a Twoim Jscript. Musisz użyć Jscript do tego.

Powiązane problemy