QCefView C 與JS互動的方法

2021-10-05 08:26:04 字數 1735 閱讀 7782

qt嵌入cef,使用qcefview比較 簡單些,很多功能 都已經整合好了,使用比較方便,關於如何搭建cef環境與編譯qcefview,這裡就不說了,網上有很多文章,而且通過編譯除錯qcefview,也可以加強對qcefview的了解,這裡主要整理下我對qcefview的c++與js的通訊方法。

進入正題:

1、c++呼叫js的方法:

(1)js設定自己的方法名稱與c++呼叫的別名對映關係:

//js**

function oncolorchanged (event)

function onrecvcppmsg (event)

function onload()

//這裡將js的oncolorchanged方法與c++的colorchange事件關聯

qcefclient.addeventlistener("colorchange", oncolorchanged)

qcefclient.addeventlistener("jsrecvcpptest", onrecvcppmsg)

}

如上述js**,在js的onload()函式中宣告對映關係,c++呼叫"colorchange"時,就是呼叫js的oncolorchanged(event)方法,同理,c++呼叫"jsrecvcpptest"時,就是呼叫js的onrecvcppmsg(event)方法;

(2)引數傳遞:

c++在呼叫js的方法前,c++會先設定引數:

//c++**

qcefevent event("sendmsgtojsevent");//給事件起個名字

event.setstringproperty("cppmsg",smsg);//新增引數

broadcastevent("jsrecvcpptest", event);//呼叫js的方法

如上述的c++**,字串變數smsg傳給節點"cppmsg",js獲取引數的方法為:event["cppmsg"]

2、js向c++通訊:

js的**:

function onqcefqueryclicked()

, onfailure: function(error_code, error_message)

}window.qcefquery(query);//這裡window.qcefquery是固定的

}

如上述js**,request:區域是放置傳遞給c++的資訊,當c++處理完後,可以返回處理結果或其他資訊,onsuccess:區域是c++返回成功的資訊,function(response)中的response為返回的資訊;

c++處理的部分**:

void qtcefview::onqcefqueryrequest(const qcefquery &query)

js使用

qcefclient.invokemethod("testfuncinfo", 1, false, "arg3");//第乙個引數是方法名稱或其他資訊,後面的都是引數
c++部分

void qtcefview::oninvokemethodnotify(int browserid, int frameid, const qstring &method, const qvariantlist &arguments)

Flex與js互動詳解

我使用swfobject.js來進行flex與js互動 1,建立flex專案 2,在flex中使用externalinte ce.call 去呼叫js中的方法,使用externalinte ce.addcallback 新增方法供js呼叫,如 3,建立web專案 4,將swfobject.js檔案新...

前端JS與App互動

在這裡,我們只需要寫好前端 接好介面。將專案打包後丟給運營去部署就行了。1 主動與ios進行互動 在與ios互動的時候,有乙個固定的語法。window.webkit.ios開發人員定義的方法名.postmessage 這裡是給ios傳值的地方 例如 window.webkit.messagehand...

表單元素與js的互動

一 關於焦點的事件 1.獲取焦點 onfocus 2.失去焦點 onblur 二 關於值的變化 1.onchange事件 當前元素失去焦點並且元素的內容發生改變而觸發此事件 2.實時監測值得變化 試想,沒有測試過 1 獲取到輸入元素,用鍵盤的onkeydown 事件實時監測 值得的變化 2 當輸入元...