Xamarin开发笔记—WebView双项事件调用
1.Xamarin调用WebView:
原理:Xamarin.Forms WebView内置方法xx.Eval(..)可以调用到页面里面的js函数。
WebView展示的代码如下:
var htmlSource = new HtmlWebViewSource(); htmlSource.Html = @"<html> <head> <meta charset='UTF-8'> <title></title> <script> function showMsg(msg){ alert('hello '+msg); } </script> </head> <body> 你好世界. </body> </html>"; this.webview.Source = htmlSource;
调用核心代码:
this.wv.Eval("showMsg('王磊')");
效果如下:
2.WebView调用Xamarin:
原理:WebView通过Navigating改变事件拦截,进行业务处理。
流程:WebView添加Navigating事件 => 修改html代码里面的href为自定义的格式和协议 => 在Navigating事件里面判断拦截处理。
html核心代码:
1 2 3 | < WebView ... Navigating="wv_Navigating" ></ WebView > < a href='xaml:{id:xxx}'>xxx</ a > |
后台核心代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | /// <summary> /// WebView链接改变事件(点击href时触发) /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void wv_Navigating( object sender, WebNavigatingEventArgs e) { string identify = "xaml:" ; //自定义协议关键字 string url = e.Url; //href信息 if (url.Contains(identify)) //是自定义的xaml:协议,执行事件 { e.Cancel = true ; JObject jb = JObject.Parse(url.Substring(identify.Length)); Debug.WriteLine( "获取data:" + jb.ToString()); //todo:业务逻辑 } } |
Xamarin系列其他推荐
关注下面二维码,订阅更多精彩内容。

【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
· C++代码改造为UTF-8编码问题的总结
· DeepSeek 解答了困扰我五年的技术问题
· 为什么说在企业级应用开发中,后端往往是效率杀手?
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 推荐几款开源且免费的 .NET MAUI 组件库
· 易语言 —— 开山篇
· 实操Deepseek接入个人知识库
· Trae初体验
2016-06-07 ASP.NET MVC 5调用其他Action