2011-09-28 37 views

回答

4

工作在Android 1.5 - 2.3,你可以使用emulateShiftHeld()公之於衆,因爲2.2,但現在已被棄用。此方法將您的WebView置於文本選擇模式。

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

不幸的是有沒有複製/粘貼/搜索/股集成在Android的功能,因爲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

相關問題