安静点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 关于#java#的问题:找一份能快速看完mooc视频的代码
  • ¥15 这种微信登录授权 谁可以做啊
  • ¥15 请问我该如何添加自己的数据去运行蚁群算法代码
  • ¥20 用HslCommunication 连接欧姆龙 plc有时会连接失败。报异常为“未知错误”
  • ¥15 网络设备配置与管理这个该怎么弄
  • ¥20 机器学习能否像多层线性模型一样处理嵌套数据
  • ¥20 西门子S7-Graph,S7-300,梯形图
  • ¥50 用易语言http 访问不了网页
  • ¥50 safari浏览器fetch提交数据后数据丢失问题
  • ¥15 matlab不知道怎么改,求解答!!