zoukankan      html  css  js  c++  java
  • CEF 框架使用集锦


    CEF 框架使用集锦:

    参考:
    〓https://github.com/NetDimension/NanUI/wiki/%E5%BC%80%E5%A7%8B%E4%BD%BF%E7%94%A8NanUI
    〓https://github.com/NetDimension/NanUI/wiki/%E6%89%93%E5%8C%85%E5%B9%B6%E4%BD%BF%E7%94%A8%E5%86%85%E5%B5%8C%E5%BC%8F%E7%9A%84HTML-CSS-JS%E8%B5%84%E6%BA%90
    〓https://github.com/NetDimension/NanUI/wiki/%E4%BD%BF%E7%94%A8%E7%BD%91%E9%A1%B5%E6%9D%A5%E8%AE%BE%E8%AE%A1%E6%95%B4%E4%B8%AA%E7%AA%97%E5%8F%A3
    〓https://github.com/NetDimension/NanUI/wiki/%E5%A6%82%E4%BD%95%E5%AE%9E%E7%8E%B0C%23%E4%B8%8EJavascript%E7%9A%84%E7%9B%B8%E4%BA%92%E9%80%9A%E4%BF%A1


    前言:NetDimension.NanUI 集成的 CEF 框架开发工作,仅限于VS2017下进行开发


    ------------------------------------------------------------
    001、引用 NetDimension.NanUI.dll
    ------------------------------------------------------------
    002、通过 NuGet 包管理器添加则会自动加载相应的CEF框架,不然则需要自行下载CEF框架
    ------------------------------------------------------------
    003、需要将 CEF 框架的资源放置于应用程序根目录当中:
    (1) 自适应 x86[32位] 或 x64[64位] 运行环境,将“fx”目录放置于程序根目录
    (2) 如果是特定的运行环境,则需要将“fx”目录下,
    除“x64”和“x86”外的所有目录全部放置于程序根目录,
    然后再将相应的运行环境目录,同样放置于程序根目录
    ------------------------------------------------------------
    004、使用 Bootstrap.Load 对CEF框架进行初始化操作
    如:禁用日志、默认语言、禁用跨域安全检测等
    示例代码:
    //指定CEF架构和文件目录结构,并初始化CEF
    var loadFlag = Bootstrap.Load(settings => {
    //禁用日志
    settings.LogSeverity = Chromium.CfxLogSeverity.Disable;

    //指定中文为当前CEF环境的默认语言
    settings.AcceptLanguageList = "zh-CN";
    settings.Locale = "zh-CN";
    }, commandLine => {
    //在启动参数中添加disable-web-security开关,禁用跨域安全检测
    commandLine.AppendSwitch("disable-web-security");
    });
    if (loadFlag) {
    Application.Run(new MainForm());
    }
    else {
    MessageBox.Show("对不起!CEF框架未能正常加载,请检查配置环境,确认无误后再重试。", "系统提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
    }
    ------------------------------------------------------------
    005、如果是特定的运行环境使用,则需要使用如下的初始化方式,同时,
    在VS的配置管理器中添加平台设置,将项目的目标平台指定为所需要的平台。
    示例代码:
    //指定对应系统架构,如果省略指定CEF目录结构的参数,那么需要手动调整CEF目录结构。
    var loadFlag = Bootstrap.Load(PlatformArch.x86);
    if(loadFlag)
    {
    Application.Run(new MainForm());
    }
    ------------------------------------------------------------
    006、将 WinForm 的窗体继承变更为 NanUI 的窗体类型
    (1) Formium NanUI使用无边框窗体引擎
    (2) WinFormium NanUI使用原生的窗体样式
    (3) 继承的窗体构造函数中,传入需要显示的网页地址,即可开启 NanUI 的 CEF 框架之旅
    示例代码:
    //原生的窗体样式
    public partial class MainForm : WinFormium {
    public MainForm()
    : base("http://cn.bing.com") {
    InitializeComponent();
    }
    }
    //无边框窗体引擎
    public partial class MainForm : Formium {
    public MainForm()
    : base("http://cn.bing.com") {
    InitializeComponent();
    }
    }
    ------------------------------------------------------------
    007、在项目中添加一个应用程序清单文件: app.manifest,
    并且取消**启用 Windows 公共控件和对话框的主题(Windows XP 和更高版本) **段中的注释:

    <!-- 启用 Windows 公共控件和对话框的主题(Windows XP 和更高版本) -->
    <dependency>
    <dependentAssembly>
    <assemblyIdentity
    type="win32"
    name="Microsoft.Windows.Common-Controls"
    version="6.0.0.0"
    processorArchitecture="*"
    publicKeyToken="6595b64144ccf1df"
    language="*"
    />
    </dependentAssembly>
    </dependency>

    然后在项目属性的应用程序选项卡中找到清单项目,并指定其中内容为刚才的app.manifest,
    重新运行项目,这时网页中的所有带title属性的标签就能正常显示工具提示了
    ------------------------------------------------------------
    008、将WEB前端的HTML/CSS/JS等文件作为嵌入资源编译到项目中,既可提高加载速度,同时能避免恶意修改
    ------------------------------------------------------------
    009、在使用 Bootstrap.Load 对CEF框架进行初始化操作时,需要同时注册好项目所使用的内嵌资源信息
    示例代码:

    if (loadFlag) {
    //注册嵌入资源,并为指定资源指定一个假的域名 my.resource.local
    Bootstrap.RegisterAssemblyResources(System.Reflection.Assembly.GetExecutingAssembly(), domainName: "my.resource.local");

    //加载分离式的资源
    var separateAssembly = System.Reflection.Assembly.LoadFile(System.IO.Path.Combine(Application.StartupPath, "EmbeddedResourcesInSplitAssembly.dll"));
    //注册外部的嵌入资源,并为指定资源指定一个假的域名 separate.resource.local
    Bootstrap.RegisterAssemblyResources(separateAssembly , domainName: "separate.resource.local");

    Application.Run(new MainForm());
    }

    可以在项目中注册多个程序中的嵌入式资源,但必需指定不同的域名(domainName参数),在使用时通过域名指向方式。
    ------------------------------------------------------------
    010、完成资源文件的嵌入后,我们就可以跟平常浏览网页一样,
    按照指定的虚假域名加上资源嵌入的目录层级路径,就可以在 NanUI 中顺利使用我们的嵌入资源
    (1) 通过 http://my.resource.local/index.html 访问主项目中的 index.html 文件
    (2) 通过 http://separate.resource.local/index.html 访问外部程序集 EmbeddedResourcesInSplitAssembly.dll 中的 index.html 文件

    项目中使用示例代码:

    public partial class MainForm : Formium
    {
    public MainForm()
    : base("http://my.resource.local/index.html")
    {
    InitializeComponent();
    }
    }
    ------------------------------------------------------------

  • 相关阅读:
    我非要捅穿这 Neutron(三)架构分析与代码实现篇(基于 OpenStack Rocky)
    我非要捅穿这 Neutron(二)上层资源模型篇
    $('.one + div')选取class为one的下一个元素
    15分钟,教你用Python爬网站数据,并用BI可视化分析!
    $("div span")选取里的所有的元素
    根据给定的元素名匹配元素
    根据给定的类名匹配元素
    根据给定的id匹配一个元素
    想创业,请问有没有投资小的项目?
    Vue组件间的通信
  • 原文地址:https://www.cnblogs.com/Jeely/p/11077421.html
Copyright © 2011-2022 走看看