我在扩展Android WebView的类中长按文本时出现复制粘贴问题。
我可以复制,但粘贴不起作用。 在调查时,网上某处有人建议调查android.webkit.WebViewClassic。
在WebViewClassic中,有一个名为pasteFromClipboard()的方法。 我认为代码的实际粘贴发生在该方法中,但不确定。
所以有人可以告诉我,我是对的,即在WebViewClassic中进行调查对我来说是否值得?
如果是,请告诉我WebView和WebViewClassic之间的关系,即WebView中的WebViewClassic点击多长时间。
抱歉,我无法公开我的代码或日志。
答案 0 :(得分: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
,您可以跟踪触摸处理将导致在WebViewClassic实例上调用pasteFromClipboard()
的位置。
是的,你是对的。当您点击PastePopupWindow上的粘贴按钮时,将调用WebViewClassic的pasteFromClipboard();
方法。