我正在使用 QML 和 Ubuntu SDK 开发一款应用。其中一个页面包含一个 WebView。虽然 WebView 可以正常接收点击事件,但它无法接收拖动事件,而这正是我想要的。
我认为问题在于拖拽事件被捕获以提供 WebView 的导航手势。但这并不是必需的:WebView 的大小正好填满了可用空间。在 WebView 显示的 HTML 中,我设置了<meta name="viewport" content="initial-scale=1.0, user-scalable=no">
,以防止 WebView 允许缩放。内容的大小正好填满了视口,因此不需要滚动。但仍然没有拖拽事件传到 WebView。我需要做什么才能让它们通过?
编辑以添加:我收到的报告称触摸和拖动功能运行正常;只有鼠标拖动事件不起作用。这与这个帖子,这表明 QML 中的 WebViews 中的鼠标处理有问题。
答案1
我一直在努力解决同样的问题,因为 webview 在拖动事件方面似乎非常有限。就你的情况而言,既然你说你不需要滚动或缩放,那么MouseArea
在 webview 中做一个简单的操作难道不行吗?这是假设你只是使用 webview 进行渲染而不是一般的浏览。顺便说一句,我最终用它onChildrenRectChanged
来捕获 webview 中的任何滚动,有点像 contentX、Y、Width 和 Height 的替代品,但这对你来说可能相关也可能不相关。