WebView2简单试用(二)—— 基本操作

摘要:
页面跳转可以通过webview实现interface://www.cnblogs.com/tianfang/“);其他操作其他常见操作已经很好地封装在WebView2控件中。网页跳转事件WebView2常见的网页跳转事件包括:更多事件可以参考API文档:快捷键F12。快捷键Ctrl+Shift+I。右键菜单中的“检查”,这为调试提供了极大的便利。

前文中简单的介绍了下如何使用WebView2控件,本文这里介绍下它的常用操作:

页面跳转:

页面跳转可以通过webview的接口来实现:

    webView.Source = new Uri("http://www.baidu.com");
    
webView.NavigateToString("<h1>hello world</h1>");

这两个方法本身只是一个封装,具体的实现在类型为CoreWebView2的webview.CoreView2属性里面,基本示例如下:

    if (webView.CoreWebView2 == null)
    {
        await webView.EnsureCoreWebView2Async();
    }
    webView.CoreWebView2.Navigate("https://www.cnblogs.com/tianfang/");

要注意的是前面的EnsureCoreWebView2Async函数,默认情况下,CoreView2是没有初始化的。

其它操作

其它常用的操作在WebView2控件中已经做了比较好的封装,这里就不多介绍了。

   WebView2简单试用(二)—— 基本操作第1张

  WebView2简单试用(二)—— 基本操作第2张

页面跳转事件

WebView2常用的页面跳转事件有:

  • NavigationStarting
  • SourceChanged
  • ContentLoading
  • HistoryChanged
  • NavigationCompleted

页面事件触发流程如下:

    WebView2简单试用(二)—— 基本操作第3张

更多事件可以参考API文档: Navigation Events

调试:

WebView2默认是集成了Devtools的,默认调出的方式也和chrome是一样的:

  • 快捷键F12.
  • 快捷键Ctrl+Shift+I.
  • 右键菜单中的"检查"

这给我们调试提供了非常大的方便。

执行脚本:

执行脚本可以使用ExecuteScriptAsync函数, 在WebView和CoreWebView2上都有。

    webView.CoreWebView2.ExecuteScriptAsync("3+2*5");

高级的函数还是在CoreWebView2上。例如,可以使用AddScriptToExecuteOnDocumentCreatedAsync注入需要执行的js到每一个页面。

    await webView.EnsureCoreWebView2Async();
    await webView.CoreWebView2.AddScriptToExecuteOnDocumentCreatedAsync("alert('hello world')");

另外,还有一种反向执行脚本:就是在浏览器里的前端页面执行JS脚本,调用宿主程序的函数。这种场景可以使用AddHostObjectToScript函数,如下是一个简单的示例:

首先定义需要注入的对象,

    [ComVisible(true)]
    public class Bridge
    {
        public string Func(string param) => "Example: " + param;
    }

然后,调用AddHostObjectToScript函数注入对象,

    webView.CoreWebView2.AddHostObjectToScript("bridge"new Bridge());

然后,在前端程序就可以通过chrome.webview.hostObjects获取注入的对象了。

    WebView2简单试用(二)—— 基本操作第4张

这个功能本身的内容较多,更详细的介绍可以参看官方文档:AddHostObjectToScript

免责声明:文章转载自《WebView2简单试用(二)—— 基本操作》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇搭建Squid3 密码账号IP代理JS事件 文本框内容改变事件(onchange)通过改变文本框的内容来触发onchange事件,同时执行被调用的程序。下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

LoadRunner系列之—-01 接口压力测试脚本

 LoadRunner中一般用如下函数进行接口测试: <一>. http或soap协议下的get请求接口,样例如下: web_url("integrated_query.jsp", "URL=http://{UrlAddress}/pcis/policy/query/integrated_query.jsp?CASOPDPT=00&...

百度统计 ---手动检查百度统计代码安装是否成功

第一步:  用chrome打开你的安装统计的站点页面,打开工具-进入开发者工具(或者直接使用快捷键ctrl+shift+I)选择 network 第2步:开始刷新页面,点击工具栏的network状态 第三步: 搜索百度统计的统计流量的图片hm.gif,确定是否存在hm.gif图片请求,如果存在则标示统计代码安装正确。           a:  特别提示关...

angularJs项目初建

在不使用构建工具的前提下,多人开发使用一个js或css文件开发是很不好的,对性能也不太好, 因为有可能文件太大而所需的内容又占比很小,每个页面要用到的内容少,但全部页面的内容合在一起 这样就不太好的,有点冗余,所以按需加载是最好的,每个文件的功能也明确。 而angularJs有指令,过滤器,服务,控制器,路由,这些明确分配的功能。 使用requireJs、...

以太坊代币合约详析

    以太坊代币 在以太坊系统中,存在作为基础货币的 Ether(以太),以及同样可以作为货币使用的 Token(代币)。 以太坊与其他加密货币的主要不同在于,以太坊不是单纯的货币,而是一个环境/平台。在这个平台上,任何人都可以利用区块链的技术,通过智能合约来构建自己的项目和DAPPS(去中心化应用)。 如果把以太坊理解成互联网,DAPPS则是在上面运...

IP地址查询接口及调用方法

设计蜂巢IP地址查询接口:http://www.hujuntao.com/api/ip/ip.php 腾讯IP地址查询接口:http://fw.qq.com/ipaddress 新浪IP地址查询接口:http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=js 搜狐IP地址查询接口:http:/...

C# 模拟鼠标(mouse_event)

想必有很多人在项目开发中可能遇见需要做模拟鼠标点击的小功能,很多人会在 百度过后采用mouse_event这个函数,不过我并不想讨论如何去使用mouse_event 函数怎么去使用,因为那没有多大意义。 [csharp] view plaincopy static void mouse_event(int dwFlags, int ...