分享一个基于Gecko内核的简单浏览器实现过程。

项目需要需要开发一个简单浏览器,由于被访问的网页中有大量Apng做的动画,使用IE内核的webbrowser不能播放,使用基于WebKit和Cefsharp试了一下,播放Apng动画也有问题。(CefSharp最新版本已经解决动画问题,但有时候比例会有一点点问题)

顺便分享一下各个项目地址:

CefSharp:https://github.com/cefsharp/CefSharp

WebKit.Net: https://github.com/webkitdotnet/webkitdotnet

Geckofx45:https://www.nuget.org/packages/Geckofx45/45.0.34

开发步骤如下:

1、新建WinFrom项目

项目Framework版本必须是4.5,目标平台要选32位X86

2、添加Nuget引用

Install-Package Geckofx45 -Version 45.0. 

正常引用下项目会添加如下的引用,并自动添加Firefox内核文件夹

3、初始化

public Form1()
{
InitializeComponent();
Xpcom.Initialize(Application.StartupPath + "/Firefox");
}

4、创建浏览器对象实现网页浏览

GeckoWebBrowser geckoWebBrowser = new GeckoWebBrowser();
geckoWebBrowser.Navigate("http://www.baidu.com/");
geckoWebBrowser.Dock = DockStyle.Fill;
this.Controls.Add(geckoWebBrowser);

PS:

实现网页缩放比例:

var cv = Xpcom.QueryInterface<nsIDocShell>(geckoWebBrowser.WebBrowserFocus).GetContentViewerAttribute();
cv.SetFullZoomAttribute(0.8);

各种问题都可以看一下:

https://bitbucket.org/geckofx/geckofx-45.0/issues

基于Gecko内核的简单浏览器实现的更多相关文章

  1. Winform调用WebKitBrowser,基于chrome内核WebKit的浏览器控件

    在C#中,默认的WebBrowser控件默认使用的是IE的core,而IE的种种遭人吐槽的诟病使我不敢轻易使用WebBrowser,因此,打算使用Chrome的内核替换IE.Chrome的内核使用的是 ...

  2. python selenium中如何测试360等基于chrome内核的浏览器

    转自:https://blog.csdn.net/five3/article/details/50013159 直接上代码,注意是基于chrome内核的浏览器,基于ie的请替换其中的chrome方法为 ...

  3. 基于.net开发chrome核心浏览器【三】

    原文:基于.net开发chrome核心浏览器[三] 本篇我们讲解怎么用CefGlue开发一个最简单的浏览器 一: CefGlue是建立在Cef项目之上的,Cef项目是C/C++的项目:CefGlue只 ...

  4. 【ShoppingWebCrawler】-基于Webkit内核的爬虫蜘蛛引擎概述

    写在开头 在各个电商平台发展日渐成熟的今天.很多时候,我们需要一些平台上的基础数据.比如:商品分类,分类下的商品详细,甚至业务订单数据.电商平台大多数提供了相应的业务接口.允许ISV接入,用来扩展自身 ...

  5. 基于.net开发chrome核心浏览器【七】

    这是一个系列的文章,前面六篇文章的地址如下: 基于.net开发chrome核心浏览器[六] 基于.net开发chrome核心浏览器[五] 基于.net开发chrome核心浏览器[四] 基于.net开发 ...

  6. 基于.net开发chrome核心浏览器

    本文转载自:http://www.cnblogs.com/liulun/archive/2013/04/20/3031502.html 一: 上一篇的链接: 基于.net开发chrome核心浏览器[一 ...

  7. 基于.net开发chrome核心浏览器【四】

    原文:基于.net开发chrome核心浏览器[四] 一: 上周去北京出差,给国家电网的项目做架构方案,每天都很晚睡,客户那边的副总也这样拼命工作. 累的不行了,直接导致第四篇文章没有按时发出来. 希望 ...

  8. 基于.net开发chrome核心浏览器【二】

    原文:基于.net开发chrome核心浏览器[二] 一: 上一篇的链接: 基于.net开发chrome核心浏览器[一] 二: 相关资源介绍: chrome Frame: 让IE有一颗chrome的心, ...

  9. 基于django的自定义简单session功能

    基于django的自定义简单session功能 简单思路: 1.建立自定义session数据库 2.登入时将用户名和密码存入session库 3.将自定义的随机session_id写入cookie中 ...

随机推荐

  1. Raneto中文搜索支持

    背景 因业务部门需要在线软件使用说明文档,但我们资源不足,故我想找一个开源的知识库,发现 Raneto不错,决定使用. 官方文档相当清晰,部署完成,发布一些文章,启动项目,交由业务同事测试使用,于是我 ...

  2. .net问号的作用

    ??运算符(C# 参考)http://msdn.microsoft.com/zh-cn/library/ms173224.aspx 可以为 null 的类型(C# 编程指南)http://msdn.m ...

  3. MyBaits集合的嵌套 Select 查询

    ---恢复内容开始--- <resultMap id="slist" type="com.qujiali.model.AdShareInfo"> & ...

  4. 4月25日课上练习 一维数组最大子数组(debug版)

    一维数组中求最大子数组的算法 package com.wangwang.mar; import java.util.Scanner; public class Sum { public static ...

  5. 你懂redis吗

    一.redis简介 Redis是当前比较热门的NOSQL系统之一,它是一个开源的使用ANSI c语言编写的key-value存储系统(区别于MySQL的二维表格的形式存储.).和Memcache类似, ...

  6. git的安装(和远程仓库建立连接)

    安装完git 1.配置用户名和邮箱 $ git config --global user.name "My Name"  $ git config --global user.em ...

  7. setData 和 直接赋值的区别

    wxml: <view> <block wx:for="{{dataArray}}" wx:key="id"> <v-book b ...

  8. html中title小图标的实现

    <link rel="icon" href="picture.ico" type="image/x-icon"/> 注意:图片的 ...

  9. ZooKeeper连接并创建节点以及实现分布式锁操作节点排序输出最小节点Demo

    class LockThread implements Runnable { private DistributedLock lock; public LockThread(int threadId, ...

  10. confluence6.x安装

    一 简介 confluence是一个专业的企业知识管理与协同软件,可以用于构建企业wiki.通过它可以实现团队成员之间的协作和知识共享. 网上有关confluence的教程比较多,在此我们以confl ...