Integrate CEF and Qt, inject C++ API to CEF web page by utilizing reflection system based on Qt's MOC.
- this is for Qt5, checkout qt4archive branch for Qt4
- need VS2015 or later
- download CEF 3.3538 to deps direcotry and unzip to dir cef3538
- build cef libcef_dll_wrapper with VS2015
- copy cef.lib and libcef_dll_wrapper.lib to common/lib/debug or common/lib/release, copy cef release dlls and resources to bin/debug or bin/release
- generator VS2015 solution with qmake -tp vc -r
- build all
With Qt's MOC based reflection, we can utilize it to inject C++ api into Cef web page without manually add every signle method and event for every single api.
//main process
QCefOSWidget* webWidget = new QCefOSWidget();
MyAppApi* api = new MyAppApi(parent);
QCefApiAdapter* adapter = new QCefApiAdapter(webWidget, parent);
adpater->initApi(api, "myapp", "app");
MyToolApi* toolApi = new MyToolApi(parent);
QCefApiAdapter* toolApiAdapter = new QCefApiAdapter(webWidget, parent);
toolApiAdapter->initApi(toolApi, adapter->apiPath(), "tool");
//we are good to go
//webpage
a = {"a": 123};
myapp.app.apiFunc(a, data => console.log(data));
myapp.app.apiAsyncFunc(a).then( data => console.log(data));
myapp.app.someEvent.addListener( data => console.log(data));