关于cef3代理问题

在集成cef3时,遇到一个设置代理的问题,cef3提供了两个设置代理的方式

  1. 继承CefApp类,通过实现接口OnBeforeCommandLineProcessing回调设置,
    OnBeforeCommandLineProcessing回调中包含CefCommandLine命令行控制实例,调用CefCommandLine实例的AppendSwitchWithValue方法设置相关属性开关,如设置代理command_line->AppendSwitchWithValue("--proxy-server", "192.168.1.100:8000");,调用AppendSwitch方法设置不需要值的属性开关,如取消代理设置command_line->AppendSwitch("--no-proxy-server");
    此方法设置的代理为全局属性,且初始化(CefInitialize)后该回调只会触发一次

  2. 继承CefRequestHandler类,通过实现接口OnBeforeBrowse回调设置,通过OnBeforeBrowse回调中的CefBrowser实例获取CefBrowserHost实例,再通过CefBrowserHost实例获取CefRequestContext实例,调用CefRequestContext实例的SetPreference方法设置属性值,设置代理方法如下:

    CefRefPtr<CefDictionaryValue> dict = CefDictionaryValue::Create();
    dict->SetString("mode", "fixed_servers");
    dict->SetString("server", "192.168.1.100:8000");
    
    CefRefPtr<CefValue> value = CefValue::Create();
    value->SetDictionary(dict);
    context->SetPreference("proxy", value, error);
    

如需取消代理设置,只需将SetPreference方法的第二个参数设为NULL,即:

context->SetPreference("proxy", NULL, error);

此方法设置的代理针对单独的CefBrowser实例,且每次加载完成都可以重新设置

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

砖农L

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

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

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

打赏作者

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

抵扣说明:

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

余额充值