irpas技术客

WebView2的初步使用二 --- 基础操作_卢队长

未知 3775

目录

一、初始化环境

二、检测组件是否安装

三、设置启动环境并创建WebView

四、参考资料


? ? ?上一篇文章 简单介绍了WebView2的集成与试用,这篇文章借着官方demo(WebView2APISample)来大体的记录一下集成情况。所有的测试实例都基于c++代码。

一、初始化环境

? ? ? 因为WebView2是一个组件,肯定少不了COM组件的初始化操作,因此在EXE装载时要调用COM组件的初始化代码:? ? ?

CoInitializeEx(NULL, COINIT_APARTMENTTHREADED)

? ? ? ? 在EXE退出时,要去卸载加载的COM组件的相关环境,调用下面的代码即可。

CoUninitialize() 二、检测组件是否安装

?? ? ? ? 初始化大环境完成后,第一时间是检测该电脑上是否安装WebView2 Runtime组件。目前检测用户机上是否安装组件,有两种方法:

? ? ? ? 第一种方法就是:检测注册表选项。即检查以下?pv (REG_SZ)?两个位置的 WebView2 运行时的注册表项。即如下图所示:? ? ? ?? ? ??? ?64位机器的注册表选项如下图所示:

HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\EdgeUpdate\Clients\{F3017226-FE2A-4295-8BDF-00C3A9A7E4C5} HKEY_CURRENT_USER\Software\Microsoft\EdgeUpdate\Clients\{F3017226-FE2A-4295-8BDF-00C3A9A7E4C5}

? ? ? ? 32位机器的注册表选项如下图所示:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\EdgeUpdate\Clients\{F3017226-FE2A-4295-8BDF-00C3A9A7E4C5} HKEY_CURRENT_USER\Software\Microsoft\EdgeUpdate\Clients\{F3017226-FE2A-4295-8BDF-00C3A9A7E4C5}

? ? ? ? 第二种方法就是调用GetAvailableCoreWebView2BrowserVersionString函数。该函数来该电脑上是否有版本号,如果有则返回目前所使用的版本号。

? ? ? ?这里需要注意的是,我们的EXE需要调用ppapi插件,因此需要去判断启动的WebView2 Runtime组件是32位还是64位,目前接口上没有相关说明,我用了笨方法,去检查启动的EXE是32位还是64位。

三、设置启动环境并创建WebView

? ? ? ? WebView2组件提供了两个函数:?CreateCoreWebView2Environment?和?CreateCoreWebView2EnvironmentWithOptions,从中我们可以为浏览器的 UI 和内容创建两个单独的环境。我建议使用第二个函数,因为它的参数中可以指定用户启动的 WebView2组件版本、默认用户数据文件夹位置以及浏览器标志等信息,因此不用使用Edge自带的默认设置。? ? ? ? ? ? ? ? ? ? ? ? ? ? 该方法执行成功后,则在CreateCoreWebView2EnvironmentWithOptions函数的最后一个参数回调函数中去执行CreateCoreWebView2Controller函数,创建出?WebView对象,然后再在该函数的回调函数中去运行get_CoreWebView2?方法并,获取关联的 WebView2对象。然后进行一些对应的浏览器设置,然后调用Navigate方法,就可以导航到指定网址,具体的demo详见WebView2APISample.

?

? ? ? ? ? ? Edge官网提供的接口说明很全,我这里不用详细介绍了,去看msdn以及demo吧,有什么问题大家可以一起探讨探讨。?

四、参考资料

?? ? ? ?? ?1、分发 WebView2 应用和 WebView2 运行时 - Microsoft Edge Development | Microsoft Docs

? ? ? ? ? 2、WebView2 Win32 C++ Reference | Microsoft Docs

? ? ? ? ? 3、Win32 应用中的 WebView2 入门 - Microsoft Edge Development | Microsoft Docs


1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,会注明原创字样,如未注明都非原创,如有侵权请联系删除!;3.作者投稿可能会经我们编辑修改或补充;4.本站不提供任何储存功能只提供收集或者投稿人的网盘链接。

标签: #WebView2的初步使用二 #基础操作 #上一篇文章