|
WebView2 控件中加载资源中文件,CHtmlView: oadFromResource的替代方案
WebView2 控件中没有直接等同于 MFC 的 CHtmlView: oadFromResource 方法,但可通过以下替代方案实现类似功能:
一、资源加载替代方案
内存加载技术
通过 NavigateToString 直接加载资源中的 HTML 字符串:
CString htmlContent;
LoadResourceToCString(IDR_HTML1, htmlContent); // 自定义资源读取函数
m_webView->NavigateToString(htmlContent);
需自行实现资源解析逻辑,适用于简单HTML内容。
虚拟主机名映射
使用 SetVirtualHostNameToFolderMapping 建立资源路径映射:
m_webView->SetVirtualHostNameToFolderMapping(
L"appres", L"res",
COREWEBVIEW2_HOST_RESOURCE_ACCESS_KIND_DENY_CORS);
m_webView->Navigate(L"https://appres/index.html");
需将资源文件释放到指定目录,保持完整DOM上下文。
二、与CHtmlView的差异对比
特性 CHtmlView WebView2
资源加载方法 LoadFromResource直接支持 需手动解析或映射
内核引擎 Trident(IE) Chromium(Edge)
安全上下文支持 有限 完整支持(需虚拟主机名)
三、推荐实现路径
对于简单内容优先使用 NavigateToString 方案
复杂项目建议采用虚拟主机名映射,需配套资源释放逻辑
动态内容可考虑 WebResourceRequested 事件拦截实现
WebView2 的设计更强调现代Web标准兼容性,因此未保留传统MFC控件的资源加载方式。
|
|