`
wangminshe89
  • 浏览: 702376 次
文章分类
社区版块
存档分类
最新评论

Firefox插件开发(5)——编译和测试第一个Plugin例子:npruntime

 
阅读更多

前几天一直在忙乎着研究和阅读XUL和FF的Extension相关资料,今天突然发现,我要做得事情似乎不是用Extension来实现的。因为原来的应用是一个ActiveX,网页会将一些参数通过ActiveX控件传递进来,而ActiveX接到这些参数以后,会和服务器进行一些数据交互,最后调起本地的执行程序。似乎我走了一些弯路,方向不对。我要做得事情应该是编写一个Plugin,而非Extension。

及时修正了下一步的研究计划,那么就让我们先来编译和测试Mozilla提供的一个小例子吧。原文连接在这里:

https://developer.mozilla.org/En/Compiling_The_npruntime_Sample_Plugin_in_Visual_Studio。文章中是以VS2003举例,我这里以VC6来进行测试,并且将步骤中需要注意的地方特别说明了一下。

1、先到这里下载相关源码:http://mxr.mozilla.org/seamonkey/source/modules/plugin/samples/npruntime/。不知道为什么Mozilla只提供了页面形式,没有打个包,害得我得一个个文件下载和保存,郁闷。

2、在VC6中新建一个Win32 Dynamic-Link Library工程,取名“nprt”。注意:建议工程以小写np开头,并且长度不超过8个字符,这样以后就会省事很多。

3、下一步,选择“An empty DLL project”,然后“Finish”。

4、将刚才下载的源码添加到工程中来。test.html不用添加,nprt.def建议也添加进来。

5、现在还不能编译,否则会出很多错误。打开Project Settings,转到C/C++标签页,在Category中选择Preprocessor,在Preprocessor Definitions中最后面添加:,XP_WIN32,MOZILLA_STRICT_API,XPCOM_GLUE,XP_WIN,_X86_。注:如果你使用VS 2005,需要添加全部的定义:WIN32;_WINDOWS;NPRT_EXPORTS;XP_WIN32;MOZILLA_STRICT_API;XPCOM_GLUE;XP_WIN;_X86_

6、在Additional include directories下面添加XULRunner SDK的include路径,可以是绝对路径,也可以是相对路径,看你当初怎么解压的了。例如:../../xulrunner-sdk/include

7、在Category中选择Precompiled Headers,选择Not using precompiled headers,OK,关闭Project Settings对话框。打开npp_gate.cpp,将下面的代码注释掉:
jref NPP_GetJavaClass (void)
{
return NULL;
}

8、编译!……我靠,有错:Fatal error C1083: Cannot open include file: 'npapi.h': No such file or directory。我可是严格按照教程上面写的去做得啊。

9、在xulrunner-sdk目录下搜索了一下npapi.h,原来在xulrunner-sdk/sdk/include下面,这好办,多加一条包含路径不就欧了?仿照第6步,添加该目录;

10、编译!OK,过了。

11、到输出目录下将nprt.dll复制到FF安装目录的plugins目录下,例如:C:/Program Files/Mozilla Firefox/plugins/

12、如果此时FF开着也没关系,不用关(这点很不错)。在地址栏键入about:plugins,看看是不是有一个npruntime scriptable example plugin,如果有,那就表示欧了,FF认出了我们的插件;

13、在FF中打开test.html,嗯?怎么还提示安装缺失插件?用EditPlus打开test.html,噢,原来有这么一句:<embed type="application/x-java-mozilla-npruntime-scriptable-plugin" style="display: block; width: 50%; height: 100px;">。因为我们刚才没有添加名字为x-java-mozilla-npruntime-scriptable-plugin的插件,所以当然认不出来啦。

14、随便点一下页面上的按钮,看看简单的交互行为。

OK,第一个例子还算顺利,比想象中的要顺利。下面就该研究一下代码了,看看FF的插件和ActiveX的区别到底有多大。

附一些参考资料:
http://xinsync.xju.edu.cn/index.php/archives/2124
http://mqjing.blogspot.com/2008/09/plugin-firefox-plugin.html

分享到:
评论

相关推荐

    我的Firefox插件开发之旅——从零开始

    知识点一:Firefox插件开发入门 作者在本篇文章中介绍了他的Firefox插件开发之旅,这是他首次尝试开发Firefox扩展,之前在IE浏览器中使用ActiveX技术实现了类似功能。作者开始时对于Firefox插件开发一无所知,因此在...

    firefox插件开发,firefox plugin 开发 firefox 扩展 开发

    火狐浏览器(Firefox)插件开发涉及一系列技术与步骤,主要目标是创建增强或定制浏览器功能的软件组件。以下是对标题和描述中提及知识点的详细解释: 1. **开发环境搭建**: - 使用`-no-remote -P develop`参数...

    Firefox插件例子源码

    【Firefox插件例子源码】是一个关于Firefox浏览器插件开发的学习资源,包含了示例代码,可供开发者参考和学习。这个压缩包中包含了多个文件,它们各自在插件开发过程中扮演着不同的角色。以下是对这些文件及其相关的...

    firefox plugin示例程序

    5. **安装和测试**:将编译好的插件文件和 .xpt 文件放置到 Firefox 的插件目录下,并重启浏览器进行测试。 在开发过程中,需要注意的是: - **安全性**:由于插件具有高度的权限,因此要特别注意安全性和稳定性,...

    firefox插件开发

    Firefox插件开发是一个涵盖多个技术领域的话题,主要涉及如何为Mozilla Firefox浏览器创建和定制功能增强的扩展。在本文中,我们将深入探讨Firefox插件开发的关键概念、工具和步骤,以便帮助开发者构建自己的Firefox...

    Firefox(火狐)浏览器 插件开发 DEMO VC6

    5. **Firefox Add-on SDK**: 除了传统的NPAPI方式,Firefox还提供了Add-on SDK,这是一套高级工具,允许开发者使用JavaScript和CSS来开发插件,简化了开发流程,但可能不适用于所有复杂的插件需求。 6. **安装和...

    Firefox插件开发Demo

    Firefox插件Demo #include "npapi.h" #include "npruntime.h" typedef int int16; class CPlugin { private: NPP m_pNPInstance; #ifdef XP_WIN HWND m_hWnd; #endif NPWindow * m_Window; NPStream *...

    Qt5开发FireFox(NpApi)插件.rar

    在本文中,我们将深入探讨如何使用Qt5框架和MSVC2015编译器来开发Firefox(Npapi)插件。这个压缩包包含了所有必要的资源,包括源码、可执行文件、动态库和一个详细的使用说明文档,使得开发者能够理解和实践这个...

    基于QT的firefox插件

    ### 基于QT的Firefox插件开发指南 #### 一、引言 随着Web技术的发展,用户对浏览器的功能需求日益增长。为了满足这些需求,许多开发者选择开发浏览器插件来增强浏览器的功能性。其中,Qt作为一个跨平台的应用程序...

    基于FireFox的Plugins的开发(带测试用源码)

    Firefox的插件是一种基于NPAPI(Netscape Plugin Application Programming Interface)的软件组件,它们可以在网页中嵌入各种功能,如播放视频、运行Java小程序等。Plugins通过与浏览器交互,实现与网页内容的集成,...

    plugin插件开发

    插件开发的实例,我们将使用 Java 开发环境开发插件,并在下一个例子中介绍如何直接使用插件开发环境开发插件。Eclipse 的主要插件有 JDT、WTP、DTP、EMF、JST、Mylyn、PDE 等。 下面我们以“Hello,World”为例,...

    Firefox插件开发概述

    Firefox插件开发是针对基于Gecko内核的浏览器(如Firefox、Chrome等非IE内核浏览器)的一种扩展技术,主要涉及NPAPI(Netscape Plugin Application Programming Interface)。NPAPI是一种允许第三方开发者创建插件,...

    Firefox NPAPI插件开发实例

    《Firefox NPAPI插件开发实例》 NPAPI(Netscape Plugin Application Programming Interface)是一种用于在Web浏览器中实现跨平台的插件技术,它允许浏览器加载外部代码来增强功能,如播放多媒体、运行Java applet...

    Firefox 火狐 插件大全

    总之,“Firefox 插件大全”为用户提供了一个丰富的插件资源库,通过这些插件,用户能够定制自己的火狐浏览器,使其更适合个人的使用习惯和需求。但同时,用户也需谨慎对待这些外部插件,确保它们的安全性并合理使用...

    我的Firefox插件开发之旅

    最后,作者开始尝试编写自己的第一个扩展,虽然可能只是一个简单的示例,但这是理解并掌握Firefox插件开发的第一步。这个过程需要耐心和时间,因为涉及到的知识点众多且深入。 总之,Firefox插件开发涉及了对...

    火狐ActiveX插件安装

    ##### 第一步:下载Netscape6/Mozilla ActiveX插件 - **下载地址**:访问提供的链接`http://updates.merc-int.com/testdirector/td80/others/netscape/npmozax.exe`下载插件文件npmozax.exe。 - **文件类型**:这是...

    Intellij Platform PlugIn插件开发手册(上).pdf

    1、如果您只想编写一些基于UI界面的插件,如框架集成、代码统计、效率工具类的插件,需要您详细了解第一、二、四三部分; 2、如果您想编写一些高级插件或是收费类插件,如代码自动完成、代码依赖管理、代码检查...

    NPAPI firefox插件开发详解

    NPAPI (Netscape Plugin Application Programming Interface) 是一种古老的接口,允许浏览器加载第三方插件以增强功能,如播放视频、音频或实现特定的交互。Firefox 曾经广泛支持 NPAPI 插件,但随着技术的发展,它...

    GWT-Dev_plugin firefox26 免费下载,GWT 火狐插件

    GWT-Dev Plugin与Firefox 26兼容,意味着开发者可以在这一版本的浏览器上有效地测试和调试他们的GWT应用。 在GWT开发中,使用GWT-Dev Plugin的好处包括: 1. **实时编译和更新**:当Java代码更改时,插件会自动...

    Firefox26 和 GWT-Dev_plugin firefox26

    标题中的“Firefox26”指的是Mozilla Firefox浏览器的第26个版本,这是一个开源且免费的网络浏览器,以其安全、隐私保护和高度可定制性而受到许多用户的欢迎。它支持多种Web标准,包括HTML5、CSS3和JavaScript,为...

Global site tag (gtag.js) - Google Analytics