C#|通过webBrowser控件实现与html间的相互传值

本文介绍了如何使用C#的webBrowser控件与HTML进行双向通信。通过webBrowser控件加载HTML文件,并展示如何从C#向HTML传递经纬度信息,以及从HTML接收道路和兴趣点信息,处理后用于显示在地图控件上。强调了WebBrowser控件的资源管理,以及在C#中处理HTML返回信息的字符串分割技巧。
摘要由CSDN通过智能技术生成

有时候我们需要用到C#和html文件间的相互传值,如此时我们希望通过一个html文件通过高德地图的提供的接口来获取当前坐标点周围的道路信息和兴趣点信息,用于显示在GMap.Net控件上,则可以通过webBrowser控件方便的实现。

webBrowser

WebBrowser 是一个 .NET 控件类,使用户可以在窗体中导航网页。WebBrowser 控件会占用大量资源。使用完该控件后一定要调用 Dispose 方法,以便确保及时释放所有资源。必须在附加事件的同一线程上调用 Dispose 方法,该线程应始终是消息或用户界面 (UI) 线程。

首先我们拖一个webBrowser控件到界面中,并在页面加载时加载html文件到webBrowser控件中

//加载逆解析地址的html
webBrowser.Navigate("C:\\findinfo.html");
//屏蔽webBrowser浏览器右键菜单
webBrowser.IsWebBrowserContextMenuEnabled = false;
//修改webbrowser的属性使c#可以调用js方法: 
webBrowser.ObjectForScripting = this;

C#传值给HTML

若C#传递objects的值给html里的函数里的变量CurLat, CurLng,则可通过如下代码实现:

webBrowser.Document.InvokeScript("mapInit", objects);
 function mapInit(CurLat, CurLng) {
   

为实现上述功能,下面给出将当前目标点的经纬度通过C#传递给html的整体函数

C#中传递值给html里的函数

object[] objects = new object[2];
//当前纬度
objects[0] = share_data.CurLat;
//当前经度
objects[1] = share_data.CurLng;
//传值给html中的mapInit函数
webBrowser.Document.InvokeScript("mapInit", objects);

html文件script中对应的maptnit函数

 //初始化加载地图并进行地址逆解析
    function mapInit(CurLat, CurLng) {
   
        //默认定位:初始化加载地图时,center及level属性缺省,地图默认显示用户所在城市范围
        mapObj = 
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值