安静点DGC 2023-02-22 09:10 采纳率: 77.3%
浏览 22
已结题

CefSharp.Wpf

在wpf中使用 ChromiumWebBrowser ,版本是49来嵌套一个网页,升级到65版本之后发现嵌套的网页都变空白了,不知道哪里出了问题
初始化的执行代码:


            if (!CefSharp.Cef.IsInitialized)
            { 
                var settings = new CefSettings() { RemoteDebuggingPort = 8088 };
                { 
                    //By default CefSharp will use an in-memory cache, you need to specify a Cache Folder to persist data
                    var CachePath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), "CefSharp\\Cache");
                };
                settings.Locale = "zh-CN";
                settings.UserAgent = "Mozilla/5.0 (Windows; U; Windows NT 6.2; zh-CN) AppleWebKit/533+ (KHTML, like Gecko)";
                settings.CefCommandLineArgs.Add("enable-media-stream", "1");
                settings.CefCommandLineArgs.Add("disable-gpu", "1"); // 禁用gpu
                Cef.Initialize(settings, performDependencyCheck: true, browserProcessHandler: null);
            }

            this.webView = new ChromiumWebBrowser(); 
            WebWindow.Children.Add(webView);
            webView.SetValue(Grid.ColumnProperty, 0);
            CefSharpSettings.SubprocessExitIfParentProcessClosed = true;
            CefSharpSettings.LegacyJavascriptBindingEnabled = true; 

            this.helper.DownloadingFile += Helper_OnDownloadFile; 
            //将c#对象注册为 js对象 
            webView.RegisterAsyncJsObject("test", helper, new CefSharp.BindingOptions { CamelCaseJavascriptNames = false });
    this.webView.Address = "网站地址"; 
  • 写回答

1条回答 默认 最新

  • Web Security Loop 2023-02-22 10:41
    关注

    从你的代码中可以看出,你使用的是 CefSharp 版本49,而现在的最新版本是90.6.8,所以你需要检查一下是否升级了 Chromium 内核,导致了版本兼容性问题。

    另外,也可以尝试在调用 Address 属性前添加一些额外的初始化代码,调用 ChromiumWebBrowser 的 OnInitialized 事件,再尝试加载网页

    this.webView = new ChromiumWebBrowser();
    this.webView.Initialized += OnInitialized;
    WebWindow.Children.Add(webView);
    // ...
            
    private void OnInitialized(object sender, EventArgs e)
    {
        this.webView.Address = "网站地址";
    }
    
    
    

    这样可能可以解决你的问题。如果问题仍然存在,建议升级 CefSharp 至最新版本,并确保在支持的 Windows 操作系统上。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 3月2日
  • 已采纳回答 2月22日
  • 创建了问题 2月22日

悬赏问题

  • ¥15 宇视监控服务器无法登录
  • ¥15 PADS Logic 原理图
  • ¥15 PADS Logic 图标
  • ¥15 电脑和power bi环境都是英文如何将日期层次结构转换成英文
  • ¥20 气象站点数据求取中~
  • ¥15 如何获取APP内弹出的网址链接
  • ¥15 wifi 图标不见了 不知道怎么办 上不了网 变成小地球了
  • ¥50 STM32单片机传感器读取错误
  • ¥50 power BI 从Mysql服务器导入数据,但连接进去后显示表无数据
  • ¥15 (关键词-阻抗匹配,HFSS,RFID标签天线)