C++ CEF的消息机制
cef地址:https://github.com/chromiumembedded/cef
c++与cef的交互,主要用在客户端内嵌浏览器这个层面,本质上就是js与c++的交互了
消息主要分成两层,一个是本身浏览器自身的web消息事件,即JavaScript的事件循环
另一个是JavaScript将事件传给C++层,主要指的是OnFocusedNodeChanged,将事件透传出来,收发事件的代码主要是
virtual void OnUncaughtException(
CefRefPtr<CefBrowser> browser,
CefRefPtr<CefFrame> frame,
CefRefPtr<CefV8Context> context,
CefRefPtr<CefV8Exception> exception,
CefRefPtr<CefV8StackTrace> stackTrace) OVERRIDE;
virtual void OnFocusedNodeChanged(
CefRefPtr<CefBrowser> browser,
CefRefPtr<CefFrame> frame,
CefRefPtr<CefDOMNode> node) OVERRIDE;
virtual bool OnProcessMessageReceived(
CefRefPtr<CefBrowser> browser,
CefRefPtr<CefFrame> frame,
CefProcessId source_process,
CefRefPtr<CefProcessMessage> message) OVERRIDE;
细节我不深究了,主要是给自己做个笔记吧,毕竟人老了,容易忘事
然后如果要比较好的cef内嵌的案例,推荐网易云信的框架
https://github.com/netease-kit/NIM_PC_Demo
但是咋说呢!云信太久没维护了,代码可能需要自己看一段时间!
哎 人老了没法子 还是Electron好用!