3

我在扩展Android WebView的类中长按文本复制粘贴时遇到问题。

我可以复制,但粘贴不起作用。在调查时,网上某处有人建议调查 android.webkit.WebViewClassic。

在 WebViewClassic 中,有一个名为 pasteFromClipboard() 的方法。我认为代码的实际粘贴发生在该方法中,但不确定。

那么任何人都可以告诉我我是对的吗,即在 WebViewClassic 中进行调查对我来说是否值得?

如果是,请告诉我WebView 和WebViewClassic 之间的关系是什么,即WebView 中的单击到WebViewClassic 需要多长时间。

抱歉,我不能公开我的代码或日志。

4

1 回答 1

4

WebViewClassic 是 WebView 的默认 WebViewProvider。从实施说明:

The WebView is a thin API class that delegates its public API to a backend WebViewProvider
class instance. WebView extends {@link AbsoluteLayout} for backward compatibility reasons.
Methods are delegated to the provider implementation: all public API methods introduced in     this
file are fully delegated, whereas public and protected methods from the View base classes are
only delegated where a specific need exists for them to do so.

基本上,触摸处理从 WebView 转发到 WebViewClassic 实例。如果您通读它的 onTouchEvent 实现及其内部 WebViewInputDispatcher 实现PrivateHandler,您可以跟踪触摸处理将导致调用pasteFromClipboard()WebViewClassic 实例的位置。

所以是的,你是对的。当您点击 PastePopupWindow 上的粘贴按钮时,将会调用 WebViewClassic 的pasteFromClipboard();方法。

于 2013-11-12T20:59:20.600 回答