如何让webbrowser控件支持Html5

 我来答
河南新华电脑99
2017-09-07 · TA获得超过205个赞
知道小有建树答主
回答量:236
采纳率:75%
帮助的人:132万
展开全部
在博客园看到了一个叫CefGlue的东东,也是对webkit的封装,但是这里博主对于整个浏览器的开发做了比较深刻的描述,并且解决了下载附件弹出保存的问题,于是我采用了这个内核,看了这几篇文章就能满足C#winform对html5的支持了,需要的朋友可以搜索 ‘ 基于.net开发chrome核心浏览器’,目前有7篇文章,其中第四篇有源码下载,比较完善了,解决了附件下载的问题和右键菜单和C#调用js的方法都有。

到这里应该就完了,不过,我们还忽略了一个问题,是js调用C#的方法,这个方法在博文中没有解决,不过小安查过资料,需要看这几篇文章,这几篇文章中的作者通过注册js和C#的反射实现了js调用C#,需要了解的请搜索标题:‘Xilium CefGlue 关于 CLR Object 与 JS 交互类库封装报告’.

如果你看了是否无法看懂,是有点难以理解,但是没关系,他们提供了一个群号,我当时加入了进去,在群共享有个deme,演示js和C#互调的方法。不过他们这个demo直言是了js和C#的互调,对于文件下载的链接依然无效,需要修改一下文件,点击打开demo工程文件,我们只用到了CefGlue和CefGlue.WindowsForms。打开CefGlue.WindowsForms,新建一个类,取名:BsLifeSpanHandler.cs
代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Xilium.CefGlue;

namespace Xilium.CefGlue.WindowsForms
{
public class BsLifeSpanHandler : CefLifeSpanHandler
{
private CefWebClient bClient;
public BsLifeSpanHandler(CefWebClient bc)
{
bClient = bc;
}
protected override void OnAfterCreated(Xilium.CefGlue.CefBrowser browser)
{
base.OnAfterCreated(browser);
bClient.Created(browser);
}
}
}

然后打开CefWebClient.cs文件,添加声明

protected override CefDownloadHandler GetDownloadHandler()
{
return downloadHandler;
}

这样就可以实现点击文档或附件自动弹出下载对话框了,同时又支持javascript和C#的调用。也就能支持绝大多数的客户端开发了。
河南新华电脑学院为您解答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式