2012-08-09 3 views
6

WebViewでプログラムでテキスト選択モードを起動する必要がありますが、使用しているコードはJelly Beanでは機能しません。Android:プログラムでJelly BeanのWebViewでテキスト選択モードをトリガーする

私は次のコードを使用していますが、WebView.selectText、emulateShiftHeld、およびキーディスパッチはJelly Beanではサポートされていないため、Android 4.1(Jelly Bean)では動作しません。 ICSまでのすべてのバージョンで動作します

次のコードは、に基づいています: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); 
     } 
    } 
} 

どのように私はジェリービーンに取り組んで同様の機能を実装していますか?

+0

こんにちは@Martin、あなたはついにこれを解決しましたか? – davids

+0

こんにちは、私はここにコメントの潜在的な解決策を記載している:http://stackoverflow.com/questions/7581131/how-to-enable-the-default-highlight-menus-in-android-webview – Martin

+0

ありがとう@Martin :) – davids

答えて

2

私はここのコメントで潜在的な解決策を列挙されています:How to enable the default highlight menus in android webview?

ここでは、潜在的な解決策の内容です: android.webkit.WebViewClassicを分析した後、私は次のようにいくつかの成功を収めている:

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

私は実際にJellyBeanデバイスをテストした後に、上記の作業がうまくいく前に少しだけWebViewをスクロールする必要があるため、もっと多くのことが必要になるかもしれません。

関連する問題