我发起并创立了一个 EPWA 的 开源项目

EPWA ,  是  Easy PWA  的 意思,

 

PWA 取自于 Google 的 PWA,

 

EPWA   是一个用   C#  Cef  Html  js  css   开发 桌面程序 的 架构 和 示例 。

 

可以参考 《我发起了一个 ILBC 的 子项目 ILBC Studio》   https://www.cnblogs.com/KSongKing/p/10465609.html   ,

 

ILBC Studio 就是用 EPWA 的 架构 写的 。

ILBC Studio 中 使用的 js 库 是 jWebForm ,  见 《我发起并创立了一个 Javascript 前端库 开源项目 jWebForm》 https://www.cnblogs.com/KSongKing/p/10326119.html  。

 

扫描二维码关注公众号,回复: 5964694 查看本文章

ILBC Studio 项目地址 :      https://github.com/kelin-xycs/ILBC

Bin 下载地址 :        http://ilbc.kgeking.kooboo.site/ILBCStudio_Debug.zip

 

EPWA  可以将  Html Js  Css  编译为 程序集资源,  通过  “localapp/Htmls/Main.html”   格式 的 Url 访问,  “localapp” 作为 host 表示 从 程序集资源 中 读取 Url 资源,

对 安全 有 比较严格 要求 的 场合, 可以给 程序集 加上 强名称, 这样 程序集(包含 资源)  就可以 加密 了 。

 

还可以 通过  “localfile\C\Project\Htmls\Main.html”   的 Url 格式 访问 本地文件,  这样可以直接 打开 Html 文件 测试调试, 可以不用编译, 很方便 。

之所以采用  “localfile”  的 方式  而不是 直接的 文件路径,  是因为 Chrome 默认不允许 本地文件 跨 frame 访问, 用 “localfile” 方式 可以避免这个问题 。

 

jWebForm 里 对于 多窗口(MDI) 模块化 开发 是 以 iframe 作为 模块,  不允许 跨 frame 访问 就 会有问题 。

“localapp” 和 “localfile”  的 实现原理 是 在 Cef 里 自定义 了 一个 RequestHandler 和 ResourceHandler,

ResourceHandler 里判断 Url 的 host 是否 是 “localapp” 或 “localfile” ,  如果是 则 从 程序集资源 或 本地文件 中 读取 。

RequestHandler 和 ResourceHandler  都在  CefGlue.WindowsForms 项目 的   RequestHandler.cs   文件 里 。

如果还想做出 “360风格” 窗口,  或者 对 窗口 的 标题栏 边框 自己定制,  那么还可以 结合 WinFormEx,

有关  WinFormEx ,  见  《WinFormEx》       https://www.cnblogs.com/KSongKing/p/9455273.html      。

猜你喜欢

转载自www.cnblogs.com/KSongKing/p/10745935.html