CefControl
和 CefNativeControl
继承了 Control
控件属性和方法,更多可用属性和方法请参考:Control 控件
- CefControl 是离屏渲染模式的 CEF 控件
- CefNativeControl 是真窗口模式的 CEF 控件(具有窗口句柄)
CEF 控件使用了最后支持 XP 的 2623 版本,控件依赖 CEF 已经编译好的二进制文件(见 bin 目录中 cef 和 cef_x64)和 CEF 的 C++ 封装层 third_party\\cef_wrapper
,
如果使用到了 CefControl
或 CefNativeControl
,需要将对应版本的 cef 目录复制到可执行文件相同目录并将 third_party\\cef_wrapper
目录设置为公共头目录,更多请参考 samples 目录下的 cef 示例和 multi_browser 示例。
方法名称 | 用途 |
---|---|
LoadURL | 加载一个地址 |
LoadString | 给指定地址添加一个字符串资源 |
GoBack | 后退 |
GoForward | 前进 |
CanGoBack | 判断是否可以后退 |
CanGoForward | 判断是否可以前进 |
Refresh | 刷新 |
StopLoad | 停止加载 |
IsLoading | 是否加载中 |
StartDownload | 开始一个下载任务 |
SetZoomLevel | 设置页面缩放比例 |
GetURL | 获取页面 URL |
GetUTF8URL | 获取 UTF8 格式 URL |
GetMainURL | 获取网址 # 号前的地址 |
RegisterCppFunc | 注册一个 C++ 方法提供前端调用 |
UnRegisterCppFunc | 反注册一个 C++ 方法 |
CallJSFunction | 调用一个前端已经注册好的方法 |
CallJSFunction | 调用一个前端已经注册好的方法 |
AttachDevTools | 绑定开发者工具到一个 CefControl 控件上 |
DettachDevTools | 解绑开发者工具 |
IsAttachedDevTools | 判断是否已经绑定开发者工具到一个 CefControl |
RepairBrowser | 修复浏览器 |
AttachBeforeContextMenu | 绑定一个回调函数用于监听右键菜单弹出 |
AttachMenuCommand | 绑定一个回调函数用于监听选择了哪个右键菜单 |
AttachTitleChange | 绑定一个回调函数用于监听页面 Title 改变 |
AttachUrlChange | 绑定一个回调函数用于监听页面中 frame URL 地址改变 |
AttachMainURLChange | 绑定一个回调函数用于监听主页面 URL 地址改变 |
AttachBeforeNavigate | 绑定一个回调函数用于监听页面资源全部加载完毕 |
AttachLinkClick | 绑定一个回调函数用于监听一个弹出窗口弹出的通知 |
AttachLoadingStateChange | 绑定一个回调函数用于监听页面加载状态改变 |
AttachLoadStart | 绑定一个回调函数用于监听页面开始加载通知 |
AttachLoadEnd | 绑定一个回调函数用于监听页面加载完毕通知 |
AttachLoadError | 绑定一个回调函数用于监听界面加载错误通知 |
AttachDevToolAttachedStateChange | 绑定一个回调函数用于监听开发者工具状态改变通知 |
加载一个地址
void LoadURL(const CefString& url)
- 参 数:
url
网站地址
- 返回值:无
给指定地址添加一个字符串资源
void LoadString(const CefString& stringW, const CefString& url)
- 参 数:
stringW
字符串资源url
网址
- 返回值:无
后退
void GoBack()
- 参 数:无
- 返回值:无
前进
void GoForward()
- 参 数:无
- 返回值:无
判断是否可以后退
bool CanGoBack()
- 参 数:无
- 返回值:返回 true 表示可以,false 表示不可以
判断是否可以前进
bool CanGoForward()
- 参 数:无
- 返回值:返回 true 表示可以,false 表示不可以
刷新
void Refresh()
- 参 数:无
- 返回值:无
停止加载
void StopLoad()
- 参 数:无
- 返回值:无
是否加载中
bool IsLoading()
- 参 数:无
- 返回值:返回 true 表示加载中,否则为 false
开始一个下载任务
void StartDownload(const CefString& url)
- 参 数:
url
要下载的文件地址
- 返回值:无
设置页面缩放比例
void SetZoomLevel(float zoom_level)
- 参 数:
zoom_level
比例值
- 返回值:无
获取页面 URL
CefString GetURL()
- 参 数:无
- 返回值:返回 URL 地址
获取 UTF8 格式 URL
std::string GetUTF8URL()
- 参 数:无
- 返回值:返回 URL 地址
获取网址 # 号前的地址
CefString GetMainURL(const CefString& url)
- 参 数:
url
要获取的完整地址
- 返回值:返回截取后的地址
注册一个 C++ 方法提供前端调用
bool RegisterCppFunc(const std::wstring& function_name, nim_cef::CppFunction function, bool global_function = false)
- 参 数:
function_name
方法名称function
方法函数体global_function
是否是一个全局方法
- 返回值:返回 true 表示注册成功,false 可能已经注册
反注册一个 C++ 方法
void UnRegisterCppFunc(const std::wstring& function_name)
- 参 数:
function_name
方法名称
- 返回值:无
调用一个前端已经注册好的方法
bool CallJSFunction(const std::wstring& js_function_name, const std::wstring& params, nim_cef::CallJsFunctionCallback callback, const std::wstring& frame_name = L"")
- 参 数:
js_function_name
前端提供的方法名params
传递 JSON 字符串格式的参数callback
前端执行完成后的回调函数frame_name
要调用哪个名称 frame 下的方法,默认使用主 frame
- 返回值:返回 true 表示成功调用,false 表示调用失败,方法可能不存在
调用一个前端已经注册好的方法
bool CallJSFunction(const std::wstring& js_function_name, const std::wstring& params, nim_cef::CallJsFunctionCallback callback, int frame_id)
- 参 数:
js_function_name
前端提供的方法名params
传递 JSON 字符串格式的参数callback
前端执行完成后的回调函数frame_id
要调用哪个 ID frame 下的方法,默认使用主 frame
- 返回值:返回 true 表示成功调用,false 表示调用失败,方法可能不存在
绑定开发者工具到一个 CefControl 控件上
virtual bool AttachDevTools(CefControl* view)
- 参 数:
view
一个 CefControl 控件实例
- 返回值:成功返回 true,失败返回 false
解绑开发者工具
virtual void DettachDevTools()
- 参 数:无
- 返回值:无
判断是否已经绑定开发者工具到一个 CefControl
virtual bool IsAttachedDevTools()
- 参 数:无
- 返回值:返回 true 表示已经绑定,false 为未绑定
修复浏览器
virtual void RepairBrowser()
- 参 数:无
- 返回值:无
绑定一个回调函数用于监听右键菜单弹出
void AttachBeforeContextMenu(const OnBeforeMenuEvent& callback)
- 参 数:
callback
一个回调函数,参考 OnBeforeMenuEvent 声明
- 返回值:无
绑定一个回调函数用于监听选择了哪个右键菜单
void AttachMenuCommand(const OnMenuCommandEvent& callback)
- 参 数:
callback
一个回调函数,参考 OnMenuCommandEvent 声明
- 返回值:无
绑定一个回调函数用于监听页面 Title 改变
void AttachTitleChange(const OnTitleChangeEvent& callback)
- 参 数:
callback
一个回调函数,参考 OnTitleChangeEvent 声明
- 返回值:无
绑定一个回调函数用于监听页面中 frame URL 地址改变
void AttachUrlChange(const OnUrlChangeEvent& callback)
- 参 数:
callback
一个回调函数,参考 OnUrlChangeEvent 声明
- 返回值:无
绑定一个回调函数用于监听主页面 URL 地址改变
void AttachMainURLChange(OnMainURLChengeEvent cb)
- 参 数:
callback
一个回调函数,参考 OnMainURLChengeEvent 声明
- 返回值:无
绑定一个回调函数用于监听页面资源全部加载完毕
void AttachBeforeNavigate(const OnBeforeResourceLoadEvent& callback)
- 参 数:
callback
一个回调函数,参考 OnBeforeResourceLoadEvent 声明
- 返回值:无
绑定一个回调函数用于监听一个弹出窗口弹出的通知
void AttachLinkClick(const OnLinkClickEvent& callback)
- 参 数:
callback
一个回调函数,参考 OnLinkClickEvent 声明
- 返回值:无
绑定一个回调函数用于监听页面加载状态改变
void AttachLoadingStateChange(const OnLoadingStateChangeEvent& callback)
- 参 数:
callback
一个回调函数,参考 OnLoadingStateChangeEvent 声明
- 返回值:无
绑定一个回调函数用于监听页面开始加载通知
void AttachLoadStart(const OnLoadStartEvent& callback)
- 参 数:
callback
一个回调函数,参考 OnLoadStartEvent 声明
- 返回值:无
绑定一个回调函数用于监听页面加载完毕通知
void AttachLoadEnd(const OnLoadEndEvent& callback)
- 参 数:
callback
一个回调函数,参考 OnLoadEndEvent 声明
- 返回值:无
绑定一个回调函数用于监听界面加载错误通知
void AttachLoadError(const OnLoadErrorEvent& callback)
- 参 数:
callback
一个回调函数,参考 OnLoadErrorEvent 声明
- 返回值:无
绑定一个回调函数用于监听开发者工具状态改变通知
void AttachDevToolAttachedStateChange(const OnDevToolAttachedStateChangeEvent& callback)
- 参 数:
callback
一个回调函数,参考 OnDevToolAttachedStateChangeEvent 声明
- 返回值:无