2012-08-09 5 views
6

프로그래밍 방식으로 WebView에서 텍스트 선택 모드를 트리거해야하지만 사용했던 코드가 Jelly Bean에서 작동하지 않습니다?Android : 프로그래밍 방식으로 Jelly Bean의 WebView에서 텍스트 선택 모드 트리거

다음 코드를 사용하고 있지만 WebView.selectText, emulateShiftHeld 및 키 디스패치가 Jelly Bean에서 더 이상 지원되지 않으므로 Android 4.1 (Jelly Bean)에서 더 이상 작동하지 않습니다. How to enable the default highlight menus in android webview?

public void selectAndCopyText() { 
    try { 
     // ICS 
      WebView.class.getMethod("selectText").invoke(this); 
     } catch (Exception e1) { 
     try { 
      Method m = WebView.class.getMethod("emulateShiftHeld", (Class[])null); 
      m.invoke(this, (Object[])null); 
     } catch (Exception e2) { 
      // fallback 
      KeyEvent shiftPressEvent = new KeyEvent(0,0, 
        KeyEvent.ACTION_DOWN,KeyEvent.KEYCODE_SHIFT_LEFT,0,0); 
      shiftPressEvent.dispatch(this); 
     } 
    } 
} 

가 어떻게 젤리 콩에서 작동 비슷한 기능을 구현합니까 : ICS까지의 모든 버전에서 작동

다음 코드를 기반으로?

내가 여기에 코멘트에 잠재적 인 솔루션을 나열했습니다
+0

안녕 마틴, 마침내 이것을 풀어 봤나 ?? – davids

+0

안녕 데이빗, 나는 여기에 의견을 잠재적 인 솔루션을 나열했습니다 : http://stackoverflow.com/questions/7581131/how-to-enable-the-default-highlight-menus-in-android-webview – Martin

+0

고마워 @ 마틴 :) – davids

답변

2

: 여기 How to enable the default highlight menus in android webview?

잠재적 솔루션의 내용은 다음과 같습니다

KeyEvent enterEvent = new KeyEvent(0,0,KeyEvent.ACTION_DOWN,KeyEvent.KEYCODE_ENTER,0,0); 
enterEvent.dispatch(this); 

I : 는 android.webkit.WebViewClassic를 분석 한 후 나는 다음과 같은 몇 가지 성공이 있었다 에뮬레이터를 사용할 때 위의 작업을하기 전에 WebView을 약간 아래로 스크롤해야했지만 실제 JellyBean 장치를 테스트 한 후에는 더 잘 작동하는 것처럼 보였습니다.

관련 문제