WebView2的初步使用二 --- 基础操作

目录

一、初始化环境

二、检测组件是否安装

三、设置启动环境并创建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

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值