CEF | 浏览器客户端能扩展:实现前进、后退、刷新、调用控制台、设置cookie

本文介绍了如何在CEF浏览器客户端中实现前进、后退、刷新、调出控制台窗口以及设置和管理cookie等基本功能。通过继承CefKeyboardHandler响应快捷键,使用CefCookieManager进行cookie操作。此外,还讨论了cookie的原理和属性,以及如何调整浏览器窗口大小以适应嵌入式场景。
摘要由CSDN通过智能技术生成

背景

想要完成一个浏览器客户端的基本功能,除了可以加载出网页页面,实现页面跳转意外,还需要很多其他的功能。例如网页的前进、后退、览器的刷新、调出控制台窗口、设置cookie等。后续还会尝试实现页面调用打印时,弹出自定义的打印窗口、支持视频播放等功能。

我们的程序是基于cef.sln中的cefsimple项目现有的功能基础上进行实现的。所以读者想进行测试,可以直接将功能代码注入到cef.sln中的cefsimple项目中进行测试。


具体实现

CefBrowser类表示浏览器窗口,类中实现了GoBack()、GoForward()、Reload()等方法。可以实现网页的后退、前进、刷新等功能。

获取浏览器窗口类

在simple_handler.h文件中有一个浏览器窗口列表变量,里面存储了所有创建了的CefBrowser,所以我们想要获取浏览器窗口类,就需要在simple_handler.h文件中添加一个getBrowser()函数,返回一个CefBrowser。

//simple_handler.h
CefRefPtr<CefBrowser> getBrowser();
复制代码
//simple_handler.cpp
//如果集合不为空,获取集合中的第一个CefBrowser元素。
CefRefPtr<CefBrowser> SimpleHandler::getBrowser()
{
    if(!browser_list_.empty()) 
    { 
        return  browser_list_.front();
    }
    return NULL;
}
复制代码

1.前进

直接通过浏览器窗口的SimpleHandler调用我们创建好的getBrowser(),判断指针是否为空,不为空调用GoForward()函数即可。

void CefBrowserWidget::forward()
{
    if(m_cefHandler->getBrowser())
    {
        m_cefHandler->getBrowser()->GoForward();
    }
}
复制代码

2.后退

同前进。方法改为调用GoBack()函数。

void CefBrowserWidget::back()
{
    if(m_cefHandler->getBrowser())
    {
        m_cefHandler->getBrowser()->GoBack();
    }
}
复制代码
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

黑兔子JH

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值