利用plugin技术开发插件.pdfVIP

  • 4
  • 0
  • 约4.56千字
  • 约 5页
  • 2020-09-13 发布于江苏
  • 举报
利用 Plug-in(NPAPI)技术扩展应用程序的 Web 应用 摘 要: 讨论 Plug-in 的基本原理和开发方法,实现了一个 H.263 解码器的插件,并研究了如何 把应用程序通过 Plug-in 技术嵌入浏览器中。   关键词: 浏览器 Netscape/Mozilla Plug-in 插件 MIME   Plug-in 是扩展浏览器功能的一项重要技术。通过 Plug-in 技术,各种应用程序和集成软 件能够以插件模型直接嵌入到网页中,提供灵活的 Web 应用。但是对于一些大型的独立应用 程序很难将其改造成插件模型。本文主要介绍如何利用 Plug-in 技术把一个大型或单独运行 的应用程序嵌入到浏览 器中。 1 Plug-in 的开发结构 1.1 Plug-in 的基本原理   Plug-in 是 Netscape 公司提出的一种浏览器插件技术。Plug-in 插件的生存周期完全由 网页控制。具体控制过程如下。   (1)当浏览器读取 HTML 网页时,若遇到 MIME 类型的标记时,它首先搜索是否有注册该 类型的 Plug-in 插件。   (2)如果有,将该 Plug-in 插件的代码载入内存。   (3)浏览器初始化 Plug-in 的环境。   (4)创建该 Plug-in 插件的实例,用于处理和显示网页中指定的数据流。   (5)当该网页关闭或转到后台时,浏览器销毁该 Plug-in 插件的实例。   (6)浏览器关闭前,退出 Plug-in 的环境。   由如上过程可以看出,Plug-in 在运行时完全作为浏览器的一部分。但是,由于 Plug-in 的 编写一般由第三方创建,所以 Plug-in 插 件的开发必须遵循 Netscape 公司提出的标准规范。 Plug-in 技术的应用非常广泛,一般浏览器中的多媒体显示都是通过插件的方式由第三方提供 的, 如 Flash 等。 1.2 Plug-in 的基本结构   Plug-in 虽然是一个独立的模块,但它是由 Mozilla 浏览器来调用的。本质上说,Plug-in 接 管了一个指定大小的显示窗口,窗口的 绘制和内容显示则完全由 Plug-in 插件来控制。所以 开发者可以将所提供的任何功能和应用放置在该窗口中。   Netscape/Mozilla 制订了浏览器和 Plug-in 的标准通信过程,但是整个运行过程的核心是 浏览器和 Plug-in 插件互操作过 程,如图 1 所示。   图中以 NPP 开头的函数是在 Plug-in 中实现的由浏览器调用的接口,而以 NPN 开头的 函数是在浏览器中实现的由 Plug-in 调用的接口。 这二类标准函数保证了浏览器和 Plug-in 能够进行数据交换和操作。这些操作主要分为以下几类。   (1)窗口的内容绘制、显示和事件处理。其中最主要的是函数 NPP_SetWindow,它使浏 览器指定了 Plug-in 插件所操纵的窗口显示 区域。   (2)数据流的处理,用于浏览器和 Plug-in 之间的数据及文件内容的双向传递,主要通过流 的方式传递数据。   (3)URL 的处理,用于控制浏览器中超链的检索、显示和跳转。   (4) 内存操作和其他相关信息。   这些接口适用于 Netscape4.0 和最新的 Mozilla 浏览器版本。由于 Plug-in 程序必须以 动态库的形式由浏览器调用,因此针对不 同的操作系统其实现方式也不同,但是其 API 的设 计非常灵活。 2 完整 Plug-in 程序的开发   根据 Plug-in 程序的基本原理和结构,可以针对特定的操作系统(Windows 或 Linux)开发 相应的 Plug-in 程序。通常 Plug-in 插件的显示是通过 HTML 网页中的 Embed 或 Object 的 标签进行设置的。在浏览器对网页进行显示时,如遇到 Embed 或 Object 标签,浏览器会根据 指定的大小创建一个窗口句柄,并通过调用函数 NPP_SetWindow 把该窗口句柄传递给 Plug -in 插件。至于窗口内容的显示和 操作完全由 Plug-in 插件来控制和处理,而 Plug-in 所需要 的数据或文件则通过 Stream 流进行通信。   本文设计了一个独立的 Plug-in 插件,其功能是播放一个 H.263 格式的图像压缩文件。 显示结构为。      其核心部分是通过函数 NPP_SetWindow 传递窗口句柄并通过 Stream 流传递 H.263 的文件内容,然后设置 Plug-i

文档评论(0)

1亿VIP精品文档

相关文档