在qt4 qml中,qtwebkit 1.0的組件webview有一個屬性javaScriptWindowObjects
。我用它將javaScriptWindowObjects添加到我的網頁JavaScript的上下文中以調用C++函數。像這樣從webviews中調用C++方法Javascript
WebView{
url: "http://test.com"
anchors.fill: parent
scale: 1.0
javaScriptWindowObjects: QtObject {
WebView.windowObjectName: "native"
function foo(x, y) {
console.log("This is a call from javascript");
myCppHandler.fooNative(b,c);
}
}
}
這樣我就可以從網頁中調用它的JavaScript像這樣
<script type="text/javascript">
native.foo(1,2)
</script>
但QT5 QML QtWebKit的3.0有像javaScriptWindowObjects
沒有這樣的事情,我怎麼能做到這一點的qt5 qml?
這令人着迷,b我發現,當打開實驗模式時,即使我獲得了額外的功能,頁面控件也會發生一些奇怪的事情。複選框和單選按鈕變得不可思議,滾動條消失(如果我用DIV打開它們),並且SELECT元素停止工作。這絕對是Qt 5.5中的一項技術預覽 - 沒有準備好用於黃金時段。 – Volomike
@Volomike自從這個應用程序的發佈於2013年3月發佈以來,我沒有多花時間在qml上,特別是在這個主題中。我想知道你認爲這是一個預覽。在撰寫本文時是這樣。今天我猜想有一個更強大的實施,沒有前綴「實驗」。不幸的是,我現在沒有時間來進一步調查,但這個答案似乎已經過時了,無論如何需要「重構」。 –
Qt 5.6截至2015年11月20日爲beta版本,但它們在Minibrowser的技術預覽版本中也包含QtWebView(不會與QWebView混淆)。我還沒有嘗試過Qt 5.6 beta。與此同時,與開發人員一起熱烈討論了5.5版本之後對Qt中的Web組件方向感到不滿:http://forum.qt.io/topic/55504/anyone-knows-the-future-of-qt-webkit – Volomike