2017-02-28 3 views
0

I Verwenden Sie WebEngineView QML Type, um eine Webseite mit einigen Links anzuzeigen, die in einem neuen Tab geöffnet werden müssen. Links sind Somethings wieÖffnen einer URL im externen Browser beim Auslösen des newViewRequested-Signals

<a href="http://google.com" target="_blank">Go to google in new tab</a> 

ich die URL newViewRequested signal in einem externen Browser öffnen möchten aber die WebEngineNewViewRequest hat keine ‚url‘ Eigenschaft, die ich mit Qt.openUrlExternally(request.url) verwenden können.

WebEngineNewViewRequest hat ein privates Mitglied QUrl m_requestedUrl, das als Eigenschaft in qml nicht zugänglich ist. Wie kann ich das Problem behandeln, die URL abrufen und sie in einem externen Browser öffnen? Danke.

Antwort

0

In QT5 können Sie navigationRequested Signal verwenden, um dies zu erreichen:

onNavigationRequested: function(request) { 
    if (request.navigationType === WebEngineNavigationRequest.LinkClickedNavigation) { 
     Qt.openUrlExternally(request.url) 
    } 
    request.action = WebEngineNavigationRequest.IgnoreRequest 
} 

Die Linie IgnoreRequest zur action Eigenschaft zuweisen ist die URL, um sicherzustellen, nicht in der WebEngineView geöffnet wird.

Verwandte Themen