安静点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 为啥画版图在Run DRC会出现Connect Error?可我Calibre的hostname和计算机的hostname已经设置成一样的了。
  • ¥20 网站后台使用极速模式非常的卡
  • ¥20 Keil uVision5创建project没反应
  • ¥15 mmseqs内存报错
  • ¥15 vika文档如何与obsidian同步
  • ¥15 华为手机相册里面的照片能够替换成自己想要的照片吗?
  • ¥15 陆空双模式无人机飞控设置
  • ¥15 sentaurus lithography
  • ¥100 求抖音ck号 或者提ck教程
  • ¥15 关于#linux#的问题:子进程1等待子进程A、B退出后退出(语言-c语言)