2011-09-28 57 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