我使用WebEngineView QML Type显示一个网页,其中包含一些需要在新标签页中打开的链接。链接是像
这样的东西<a href="http://google.com" target="_blank">Go to google in new tab</a>
我想在外部浏览器中打开newViewRequested signal的网址,但WebEngineNewViewRequest没有可以与Qt.openUrlExternally(request.url)
一起使用的'url'属性。
WebEngineNewViewRequest
有一个私有成员QUrl m_requestedUrl,无法作为qml中的属性访问。
如何处理问题,获取URL并在外部浏览器中打开它。
感谢。
答案 0 :(得分:1)
在Qt5中,您可以使用navigationRequested信号来实现此目的:
onNavigationRequested: function(request) {
if (request.navigationType === WebEngineNavigationRequest.LinkClickedNavigation) {
Qt.openUrlExternally(request.url)
}
request.action = WebEngineNavigationRequest.IgnoreRequest
}
将IgnoreRequest
分配给action
属性的行是为了确保不在WebEngineView中打开URL。