2017-05-05 26 views
3

我要尋找一個網站加載後運行的Java腳本代碼做出處理GET和POST請求的可能性處理GET和POST請求。這裏是描述:一個url可以通過QWebEnginePage :: load加載,並且該頁面包含一些按鈕,javescript事件綁定到它們。按鈕做一些獲取和發佈來自互聯網的請求。無論如何,當get和post請求由JavaScript事件執行時,我可以發信號通知我的類。如果使用QWebEngine是不可能的Qt中有哪些其他選項可以完成工作。我正在尋找一些在將來不是絕對的選擇,因爲它是長期項目的一部分。 謝謝QWebEngine:當runJavaScript進行

+0

你的意思是這樣的嗎? http://stackoverflow.com/questions/14342220/invoke-c-method-from-webviews-javascript – Macias

+0

我不這麼認爲,例如在提交表單中有使用java-script特殊按鈕來檢索特殊信息通過獲取方法,而你填寫表格。我希望我的類可以在用java腳本執行這樣的請求時發出信號。 – AMCoded

回答

0

你可以使用QWebChannel應該在你的情況下工作。

CPP文件

QWebChannel* webChannel = new QWebChannel(); 
webChannel->registerObject("foo", this); 
webview->page()->setWebChannel(webChannel); 

在HTML文件

<script type="text/javascript" src="qrc:/Map/qwebchannel.js"></script> 
<script type="text/javascript"> 
    new QWebChannel(qt.webChannelTransport, function(channel) { 
    // all published objects are available in channel.objects under 
    // the identifier set in their attached WebChannel.id property 
    var foo = channel.objects.foo; 

    // access a property 
    alert(foo.hello); 

    // connect to a signal 
    foo.someSignal.connect(function(message) { 
     alert("Got signal: " + message); 
    }); 

    // invoke a method, and receive the return value asynchronously 
    foo.someMethod("bar", function(ret) { 
     alert("Got return value: " + ret); 
    }); 
}); 
</script> 
+0

謝謝,但你會提供一個最小的例子或者讓我找到如何去做的想法。 – AMCoded