2011-09-28 16 views

答えて

4

は、Android 1.5での作業 - 2.3あなたは2.2以降emulateShiftHeld()公表を使用することができますが、現在は廃止されましたが。このメソッドはWebViewをテキスト選択モードにします。

https://developer.android.com/reference/android/webkit/WebView.html#emulateShiftHeld%28%29

あいにくのAndroidに統合一切のコピー/貼り付け/検索/共有機能はありません、アンドロイド2.0以降テキスト選択 は、タッチによって駆動することができるが、それ以外の、あなたがすることができる他の事はありません。

+0

これを行うには何かjavascript関連のものがありますか? –

+0

@Drax質問に間違いがありました。 'WebView'は* Java *クラスで、Java!= JavaScript(そして" javascript "はありません)です。しかし、タッチイベントを使ったDOMスクリプトを使って 'WebView' *で表示されたドキュメントで*これをエミュレートしようとすることもできます。 – PointedEars

-1

このお試しください:

mWebView.setHapticFeedbackEnabled(true); 
mWebView.setLongClickable(true); 
2

私はWebViewの上で)この メソッドでSelectTextを(チェックアウトのための回避策を見つけました(それはAPIではないが、リフレクションを使用して呼び出すことができます)

ここでは、私の完全なメソッドのソースコードです:

public void startTextSelection() { 
     try { 
      WebView.class.getMethod("selectText").invoke(this); 
     } catch (Exception e) { 
      try { 
       WebView.class.getMethod("emulateShiftHeld").invoke(this); 
      } catch (Exception e1) { 
       KeyEvent shiftPressEvent = new KeyEvent(0, 0, 
         KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_SHIFT_LEFT, 0, 0); 
       shiftPressEvent.dispatch(this); 
       Toast.makeText(getContext(), R.string.select_text, Toast.LENGTH_LONG).show(); 
      } 
     } 
    } 

ICSでも動作します。

+0

私は上記のコードを使用しましたが、残念ながらselectTextはAndroid 4.1(Jellybean)から完全に削除されているため、これはもう機能しません。 4.1の提案はありますか? – Martin

+0

@Martin私は、4.1のソースコードを調べると、解決策を見つけるとすぐにあなたに戻ってくるでしょう:) –

+0

android.webkit.WebViewClassicを分析した後、私はいくつかの成功を収めました: – Martin

関連する問題