CN103593370B - 在浏览器中实现扩展应用的方法及浏览器 - Google Patents

在浏览器中实现扩展应用的方法及浏览器 Download PDF

Info

Publication number
CN103593370B
CN103593370B CN201210292249.5A CN201210292249A CN103593370B CN 103593370 B CN103593370 B CN 103593370B CN 201210292249 A CN201210292249 A CN 201210292249A CN 103593370 B CN103593370 B CN 103593370B
Authority
CN
China
Prior art keywords
browser
extended application
interface
extended
description data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201210292249.5A
Other languages
English (en)
Other versions
CN103593370A (zh
Inventor
滕跃龙
务孟庆
蒋进舟
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201210292249.5A priority Critical patent/CN103593370B/zh
Priority to PCT/CN2013/081449 priority patent/WO2014026608A1/en
Priority to EP13829116.6A priority patent/EP2885709A1/en
Publication of CN103593370A publication Critical patent/CN103593370A/zh
Priority to US14/622,472 priority patent/US20150154059A1/en
Application granted granted Critical
Publication of CN103593370B publication Critical patent/CN103593370B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/541Interprogram communication via adapters, e.g. between incompatible applications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/36Software reuse
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/31Programming languages or programming paradigms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • G06F9/44526Plug-ins; Add-ons
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Human Computer Interaction (AREA)
  • Stored Programmes (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本发明的实施例提供一种在浏览器中实现扩展应用的方法及浏览器,涉及计算机应用技术领域,可以在一种浏览器中实现兼容其他不同种类浏览器的扩展应用。所述方法包括:在适配器模式下,所述第一浏览器接收第二浏览器的扩展应用对第二浏览器应用程序接口API的调用;所述第一浏览器将第二浏览器的扩展应用对第二浏览器API的调用转换为对第一浏览器API的调用;在第一浏览器中,所述第二浏览器的扩展应用通过所述转换后的对第一浏览器API的调用,执行所述第二浏览器的扩展应用的功能。本发明实施例主要应用于浏览器实现对扩展应用支持的过程中。

Description

在浏览器中实现扩展应用的方法及浏览器
技术领域
本发明涉及计算机应用技术领域,尤其涉及一种在浏览器中实现扩展应用功能的浏览器。
背景技术
目前,支持扩展应用的浏览器通过安装并加载扩展应用,可以为浏览器增加新的功能。该扩展应用为一系列文件的集合,通过浏览器进行加载时,可以在浏览器中添加该扩展应用自身的界面元素,例如,按钮、菜单等,并在用户操作这些界面元素时做出响应,以实现相应的功能。例如,chrome浏览器支持一种鼠标手势扩展应用,在chrome浏览器加载该扩展应用后,用户可以通过使用鼠标在页面区域绘制特定线条,来实现控制页面的前进、后退或关闭页面等功能。
上述扩展应用可以利用浏览器提供的扩展应用编写规范进行开发得到。本文中将利用一个浏览器的扩展应用编写规范编写得到的扩展应用称之为该浏览器的扩展应用。通常,不同的浏览器提供的扩展应用编写规范不相同,因而,一种浏览器的扩展应用可以应用于该浏览器中,通常无法应用到其他种类的浏览器中。例如,chrome浏览器的扩展应用可以应用在chrome浏览器中,却无法应用到firefox浏览器中。
可见,现有技术中,一种浏览器无法兼容其他不同种类浏览器的扩展应用。
发明内容
本发明的实施例提供一种在浏览器中实现扩展应用的方法及浏览器,可以在一种浏览器中实现兼容其他不同种类浏览器的扩展应用。
为达到上述目的,本发明的实施例采用如下技术方案:
一方面,提供一种在浏览器中实现扩展应用的方法,该方法用于在第一浏览器中实现第二浏览器的扩展应用对API的调用。
其中,第一浏览器上安装有第二浏览器的扩展应用,并设有适配器模式,所述第一浏览器和第二浏览器为两种不同类型的浏览器,所述方法包括:
在适配器模式下,所述第一浏览器接收第二浏览器的扩展应用对第二浏览器应用程序接口API的调用;
所述第一浏览器将第二浏览器的扩展应用对第二浏览器API的调用转换为对第一浏览器API的调用;
在第一浏览器中,所述第二浏览器的扩展应用通过所述转换后的对第一浏览器API的调用,执行所述第二浏览器的扩展应用的功能。
一方面,还提供一种在浏览器中实现扩展应用的方法,该方法用于在第一浏览器中实现第二浏览器的扩展应用的界面展示。
其中,第一浏览器上安装有第二浏览器的扩展应用,所述第一浏览器和第二浏览器为两种不同类型的浏览器,所述方法包括:
第一浏览器解析第二浏览器的扩展应用的界面描述文件,得到第二浏览器的扩展应用的界面描述数据;
将所述第二浏览器的扩展应用的界面描述数据转换为第一浏览器支持的界面描述数据;
所述第一浏览器将所述转换后的第二浏览器的扩展应用的界面描述数据存储在所述第一浏览器的界面数据结构中,所述第一浏览器的界面描述结构用于描述第一浏览器的界面呈现方式;
所述第一浏览器读取所述第一浏览器的界面数据结构中的界面描述数据,所述读取出来的界面描述数据包括所述第二浏览器的扩展应用的界面描述数据;
所述第一浏览器按照所述第二浏览器的扩展应用的界面描述数据在第一浏览器的展示界面中显示所述第二浏览器的扩展应用的展示界面。
一方面,还提供一种在浏览器中实现扩展应用的方法,该方法用于在第一浏览器中实现对第二浏览器的扩展应用的管理。
其中,所述第一浏览器和第二浏览器为两种不同类型的浏览器,所述方法包括:
所述第一浏览器解析所述第二浏览器的扩展应用的安装包,得到所述第二浏览器的扩展应用的扩展描述数据;
所述第一浏览器将所述第二浏览器的扩展应用的扩展描述数据按照第一浏览器支持的数据格式转换成所述第一浏览器支持的扩展描述数据;
所述第一浏览器通过所述转换后的扩展描述数据对所述第二浏览器的扩展应用进行管理,所述管理应包括扩展应用的安装、加载、卸载、扩展功能的使用和禁用。
另一方面,提供一种浏览器,所述浏览器为第一浏览器,安装有第二浏览器的扩展应用,并设有适配器模式,所述第一浏览器和第二浏览器为两种不同类型的浏览器,所述第一浏览器包括:
接收模块,用于在适配器模式下,接收第二浏览器的扩展应用对第二浏览器应用程序接口API的调用;
转换模块,用于将第二浏览器的扩展应用对第二浏览器API的调用转换为对第一浏览器API的调用;
所述第二浏览器的扩展应用,用于在第一浏览器中通过所述转换后的对第一浏览器API的调用,执行所述第二浏览器的扩展应用的功能。
另一方面,还提供一种浏览器,所述浏览器为第一浏览器,安装有第二浏览器的扩展应用,所述第一浏览器和第二浏览器为两种不同类型的浏览器,所述第一浏览器包括:
解析模块,用于解析第二浏览器的扩展应用的界面描述文件,得到第二浏览器的扩展应用的界面描述数据;
转换处理模块,用于将所述第二浏览器的扩展应用的界面描述数据转换为第一浏览器支持的界面描述数据,并将所述转换后的第二浏览器的扩展应用的界面描述数据存储在所述第一浏览器的界面数据结构中,所述第一浏览器的界面描述结构用于描述第一浏览器的界面呈现方式;
读取模块,用于读取所述第一浏览器的界面数据结构中的界面描述数据,所述读取出来的界面描述数据包括所述第二浏览器的扩展应用的界面描述数据;
显示模块,用于按照所述第二浏览器的扩展应用的界面描述数据在第一浏览器的展示界面中显示所述第二浏览器的扩展应用的展示界面。
另一方面,又提供一种浏览器,所述浏览器为第一浏览器,所述第一浏览器包括:
解析模块,用于解析所述第二浏览器的扩展应用的安装包,得到所述第二浏览器的扩展应用的扩展描述数据,所述第一浏览器和第二浏览器为两种不同类型的浏览器;
转换模块,用于将所述第二浏览器的扩展应用的扩展描述数据按照第一浏览器支持的数据格式转换成所述第一浏览器支持的扩展描述数据;
扩展应用管理模块,用于通过所述转换后的扩展描述数据对所述第二浏览器的扩展应用进行管理,所述管理应包括扩展应用的安装、加载、卸载、扩展功能的使用和禁用。
由上述技术方案所描述的本发明实施例中,通过在适配器模式下,将第二浏览器的扩展应用对第二浏览器API的调用转换为对第一浏览器API的调用,在第一浏览器中实现了第二浏览器的扩展应用对API的调用;通过解析第二浏览器的扩展应用的界面描述文件,得到第二浏览器的扩展应用的界面描述数据,并将所述第二浏览器的扩展应用的界面描述数据存储在所述第一浏览器的界面数据结构中,在第一浏览器中实现了第二浏览器的扩展应用的界面展示;通过将所述第二浏览器的扩展应用的扩展描述数据按照第一浏览器支持的数据格式转换成所述第一浏览器支持的扩展描述数据,在第一浏览器中,实现了对第二浏览器的扩展应用的管理(包括但不限于安装、加载、卸载、扩展功能的使用和禁用),亦即在第一浏览器中可以实现对第二浏览器的扩展应用的兼容,其中,第一浏览器和第二浏览器为两种不同类型的浏览器,第二浏览器的扩展应用为采用第二浏览器的扩展应用编写规范开发得到扩展应用。可见,采用上述技术方案可以在一种浏览器中实现兼容其他不同种类浏览器的扩展应用。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例1中在浏览器中实现扩展应用的方法的一种示意图;
图2为本发明实施例1中在浏览器中实现扩展应用的方法的另一种示意图;
图3为本发明实施例1中在浏览器中实现扩展应用的方法的又一种示意图;
图4为本发明实施例2提供的浏览器的一种示意图;
图5为本发明实施例2提供的浏览器的另一种示意图;
图6为本发明实施例2提供的浏览器的又一种示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本实施例中,一种在浏览器中实现扩展应用的方法,具体可以分为三个部分的实现,分别为:
在第一浏览器中实现第二浏览器的扩展应用对API的调用,以便于实现第二浏览器的扩展应用的功能;
在第一浏览器中实现第二浏览器的扩展应用的界面展示,以便于在第一浏览器中显示第二浏览器的扩展应用的界面;
在第一浏览器中实现对第二浏览器的扩展应用的管理,以便于用户在第一浏览器中对第二浏览器的扩展应用进行扩展应用的安装、加载、卸载、扩展功能的使用和禁用等管理操作。
其中,第一浏览器和第二浏览器为两种不同类型的浏览器,例如,chrome浏览器和firefox浏览器。第二浏览器的扩展应用是指利用第二浏览器的扩展应用编写规范编写得到的扩展应用。本文中凡是与第一浏览器的类型不相同的浏览器均可以称之为第二浏览器,可以理解的是,这里不限定第二浏览器的种类个数。
下文中以在第一浏览器中实现一种第二浏览器的扩展应用为例进行介绍,亦即在一个浏览器中实现其他一种浏览器的扩展应用。同理,采用本发明实施例的方法,还可以在一个浏览器中实现其他多种浏览器的扩展应用。
实施例1:
如图1所示,本发明实施例提供一种在浏览器中实现扩展应用的方法,该方法用于在第一浏览器中实现第二浏览器的扩展应用对API的调用。
其中,第一浏览器上安装有第二浏览器的扩展应用,并设有适配器模式,所述第一浏览器和第二浏览器为两种不同类型的浏览器,
本实施例的一种应用场景为:在浏览器启动,并加载所述第二浏览器的扩展应用之后,当用户希望使用所述第二浏览器的扩展应用的某项功能时,如果选中了所述第二浏览器的扩展应用的展示界面中该功能对应的选项,所述第二浏览器的扩展应用需要对第二浏览器应用程序接口API进行调用来实现相应功能,此时,上述在浏览器中实现扩展应用的方法包括:
S101、在适配器模式下,所述第一浏览器接收第二浏览器的扩展应用对第二浏览器应用程序接口API的调用。
其中,所述适配器模式(Adapter模式)可以将一个类的应用程序接口转换另外一个类的应用程序接口,使得由于应用程序接口不兼容而无法一起工作的类可以在一起工作。
上述第二浏览器应用程序接口API可以由用户从第二浏览器的扩展应用编写规范中获取,并保存在指定区域中,该指定区域为浏览器所在的计算机系统中第一浏览器可以访问到的任意存储区域。
S102、所述第一浏览器将第二浏览器的扩展应用对第二浏览器API的调用转换为对第一浏览器API的调用。
本发明实施例的一种实现方式中,所述第二浏览器的扩展应用对第二浏览器API的调用采用第一计算机编程语言实现,所述转换后的第二浏览器的扩展应用对第一浏览器API的调用采用第二计算机编程语言实现。所述第一计算机编程语言包括:JS语言或C++语言;第二计算机编程语言包括:JS语言或C++语言。
本发明实施例的一种实现方式中,所述第一计算机编程语言和第二计算机编程语言为相同的语言,或者,所述第一计算机编程语言和第二计算机编程语言为不相同的语言。
例如,所述第二浏览器的扩展应用对第二浏览器API的调用采用JS语言实现,转换后的第二浏览器的扩展应用对第一浏览器API的调用可以采用JS语言或C++语言实现。
S103、在第一浏览器中,所述第二浏览器的扩展应用通过所述转换后的对第一浏览器API的调用,执行所述第二浏览器的扩展应用的功能。
本发明实施例中,通过在适配器模式下,将第二浏览器的扩展应用对第二浏览器API的调用转换为对第一浏览器API的调用,在第一浏览器中实现了第二浏览器的扩展应用对API的调用,进而在第一浏览器中实现了第二浏览器的扩展应用的功能。
如图2所示,本发明实施例还提供一种在浏览器中实现扩展应用的方法,该方法用于在第一浏览器中实现第二浏览器的扩展应用的界面展示。其中,第一浏览器上安装有第二浏览器的扩展应用,所述第一浏览器和第二浏览器为两种不同类型的浏览器。
本实施例的一种应用场景为:在第一浏览器启动后,加载所述第二浏览器的扩展应用时,需要加载并显示第二浏览器的扩展应用的展示界面,此时,上述浏览器中实现扩展应用的方法包括:
S201、第一浏览器解析第二浏览器的扩展应用的界面描述文件,得到第二浏览器的扩展应用的界面描述数据。
所述第二浏览器的扩展应用的界面描述文件可以为HTML文件或者XML文件或其它格式的文件。
浏览器根据所述界面描述数据可以绘制出浏览器的显示界面。
不同的浏览器支持的界面描述数据的格式可能不相同,例如,在描述界面中显示的按钮时,可以采用字符串的形式表示该按钮的长宽高,也可以采用三个小数的形式分别表示按钮的长宽高。
因而,得到第二浏览器的扩展应用的界面描述数据之后,如果第二浏览器支持的界面描述数据的格式与第一浏览器的支持的界面描述数据的格式不同时,第一浏览器就需要将所述第二浏览器的扩展应用的界面描述数据转换为第一浏览器支持的界面描述数据。
S202、所述第一浏览器将所述第二浏览器的扩展应用的界面描述数据转换为第一浏览器支持的界面描述数据;并将所述转换后的第二浏览器的扩展应用的界面描述数据存储在所述第一浏览器的界面数据结构中,所述第一浏览器的界面描述结构用于描述第一浏览器的界面呈现方式。
由于不同的浏览器对扩展应用的界面描述规则也不同。如果在第一浏览器中显示第二浏览器的扩展应用的界面,就需要将所述第二浏览器的扩展应用的界面描述数据转换成第一浏览器可以支持的方式。
上述第一浏览器的界面数据结构是一系列用于描述第一浏览器的界面呈现方式的数据集合,该界面数据结构可以采用MVC(Model模型、View视图、Controller控制器)模式进行构建,将所述第二浏览器的扩展应用的界面描述数据存储在所述第一浏览器的界面数据结构之后,第一浏览器可以根据所述第一浏览器的界面数据结构绘制第一浏览器自身界面的同时,也可以将所述第二浏览器的扩展应用的界面绘制并显示出来。
其中,所述第一浏览器的界面数据结构采用文件形式进行存储;或者,所述第一浏览器的界面数据结构采用结构体的形式存储在内存中。
S203、所述第一浏览器读取所述第一浏览器的界面数据结构中的界面描述数据,所述读取出来的界面描述数据包括所述第二浏览器的扩展应用的界面描述数据。
S204、所述第一浏览器按照所述第二浏览器的扩展应用的界面描述数据在第一浏览器的展示界面中显示所述第二浏览器的扩展应用的展示界面。
本发明实施例中,通过解析第二浏览器的扩展应用的界面描述文件,得到第二浏览器的扩展应用的界面描述数据,并将所述第二浏览器的扩展应用的界面描述数据存储在所述第一浏览器的界面数据结构中,在第一浏览器中实现了第二浏览器的扩展应用的界面展示。
如图3所示,本发明实施例还提供一种在浏览器中实现扩展应用的方法,该方法用于在第一浏览器中实现对第二浏览器的扩展应用的管理。
本发明实施例的一种应用场景为:在第一浏览器上对第二浏览器的扩展应用进行管理时,该管理包括扩展应用的安装、加载、卸载、扩展功能的使用和禁用等,所述方法包括:
S301、所述第一浏览器解析所述第二浏览器的扩展应用的安装包,得到所述第二浏览器的扩展应用的扩展描述数据;
其中,所述第一浏览器和第二浏览器为两种不同类型的浏览器。
S302、所述第一浏览器将所述第二浏览器的扩展应用的扩展描述数据按照第一浏览器支持的数据格式转换成所述第一浏览器支持的扩展描述数据。
由于不同浏览器的扩展应用具有不同的安装包格式,例如:chrome浏览器的扩展应用的安装包中,主要的索引文件叫做manifest.json,采用JSON格式描述扩展应用的相关信息,例如,包括扩展名、版本号之类的信息。firefox火狐浏览器的扩展应用的安装包中,主要描述文件是install.rdf,采用XML格式描述扩展的相关信息。
因而,如果希望第一浏览器能够支持第二浏览器的扩展应用的安装包,则需要解析第二浏览器的扩展应用的安装包,并转换为第一浏览器可以支持的数据格式。
S303、所述第一浏览器通过所述转换后的扩展描述数据对所述第二浏览器的扩展应用进行管理,所述管理包括扩展应用的安装、加载、卸载、扩展功能的使用和禁用。
本发明实施例中,通过将所述第二浏览器的扩展应用的扩展描述数据按照第一浏览器支持的数据格式转换成所述第一浏览器支持的扩展描述数据,在第一浏览器中,实现了对第二浏览器的扩展应用的管理(包括但不限于安装、加载、卸载、扩展功能的使用和禁用)。
综上所述,上述图1-3所示的方法分别在第一浏览器中实现了第二浏览器的扩展应用对API的调用、第二浏览器的扩展应用的界面展示和管理,亦即在第一浏览器中可以实现对第二浏览器的扩展应用的兼容。可见,采用上述技术方案可以在一种浏览器中实现兼容其他不同种类浏览器的扩展应用。
实施例2:
如图4所示,本发明实施例提供一种浏览器,所述浏览器为第一浏览器,安装有第二浏览器的扩展应用,并设有适配器模式10,所述第一浏览器和第二浏览器为两种不同类型的浏览器,所述第一浏览器包括:
接收模块11,用于在适配器模式下,接收第二浏览器的扩展应用对第二浏览器应用程序接口API的调用;
转换模块12,用于将第二浏览器的扩展应用对第二浏览器API的调用转换为对第一浏览器API的调用;
所述第二浏览器的扩展应用13,用于在第一浏览器中通过所述转换后的对第一浏览器API的调用,执行所述第二浏览器的扩展应用的功能。
示例性的,所述第二浏览器的扩展应用对第二浏览器API的调用采用第一计算机编程语言实现,所述转换后的第二浏览器的扩展应用对第一浏览器API的调用采用第二计算机编程语言实现;
所述第一计算机编程语言和第二计算机编程语言为相同的语言,或者,所述第一计算机编程语言和第二计算机编程语言为不相同的语言。
所述第一计算机编程语言包括:JS语言或C++语言;第二计算机编程语言包括:JS语言或C++语言。
本发明实施例中,第一浏览器通过在适配器模式下,将第二浏览器的扩展应用对第二浏览器API的调用转换为对第一浏览器API的调用,在第一浏览器中实现了第二浏览器的扩展应用对API的调用,进而在在第一浏览器中实现了第二浏览器的扩展应用的功能。
如图5所示,本发明实施例还提供一种浏览器,所述浏览器为第一浏览器,安装有第二浏览器的扩展应用,所述第一浏览器和第二浏览器为两种不同类型的浏览器,所述第一浏览器包括:
解析模块21,用于解析第二浏览器的扩展应用的界面描述文件,得到第二浏览器的扩展应用的界面描述数据;
转换处理模块22,用于将所述第二浏览器的扩展应用的界面描述数据转换为第一浏览器支持的界面描述数据;并将所述转换后的第二浏览器的扩展应用的界面描述数据存储在所述第一浏览器的界面数据结构中,所述第一浏览器的界面描述结构用于描述第一浏览器的界面呈现方式;
读取模块23,用于读取所述第一浏览器的界面数据结构中的界面描述数据,所述读取出来的界面描述数据包括所述第二浏览器的扩展应用的界面描述数据;
显示模块24,用于按照所述第二浏览器的扩展应用的界面描述数据在第一浏览器的展示界面中显示所述第二浏览器的扩展应用的展示界面。
示例性的,所述第一浏览器的界面数据结构采用文件形式进行存储;或者,
所述第一浏览器的界面数据结构采用结构体的形式存储在内存中。
本发明实施例中,第一浏览器通过解析第二浏览器的扩展应用的界面描述文件,得到第二浏览器的扩展应用的界面描述数据,并将所述第二浏览器的扩展应用的界面描述数据存储在所述第一浏览器的界面数据结构中,在第一浏览器中实现了第二浏览器的扩展应用的界面展示。
如图6所示,本发明实施例提供一种浏览器,所述浏览器为第一浏览器,所述第一浏览器包括:
解析模块31,用于解析所述第二浏览器的扩展应用的安装包,得到所述第二浏览器的扩展应用的扩展描述数据,所述第一浏览器和第二浏览器为两种不同类型的浏览器;
转换模块32,用于将所述第二浏览器的扩展应用的扩展描述数据按照第一浏览器支持的数据格式转换成所述第一浏览器支持的扩展描述数据;
扩展应用管理模块33,用于通过所述转换后的扩展描述数据对所述第二浏览器的扩展应用进行管理,所述管理应包括扩展应用的安装、加载、卸载、扩展功能的使用和禁用。
本发明实施例中,第一浏览器通过将所述第二浏览器的扩展应用的扩展描述数据按照第一浏览器支持的数据格式转换成所述第一浏览器支持的扩展描述数据,在第一浏览器中,实现了对第二浏览器的扩展应用的管理(包括但不限于安装、加载、卸载、扩展功能的使用和禁用)。
综上所述,在上述图4-6所示的第一浏览器中,分别实现了第二浏览器的扩展应用对API的调用、第二浏览器的扩展应用的界面展示和管理,亦即在第一浏览器中可以实现对第二浏览器的扩展应用的兼容。可见,采用上述技术方案可以在一种浏览器中实现兼容其他不同种类浏览器的扩展应用。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘,硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

Claims (12)

1.一种在浏览器中实现扩展应用的方法,其特征在于,第一浏览器上安装有第二浏览器的扩展应用,并设有适配器模式,所述第一浏览器和第二浏览器为两种不同类型的浏览器,所述方法包括:
在适配器模式下,所述第一浏览器接收第二浏览器的扩展应用对第二浏览器应用程序接口API的调用;
所述第一浏览器将第二浏览器的扩展应用对第二浏览器API的调用转换为对第一浏览器API的调用;
在第一浏览器中,所述第二浏览器的扩展应用通过所述转换后的对第一浏览器API的调用,执行所述第二浏览器的扩展应用的功能。
2.根据权利要求1所述的方法,其特征在于,所述第二浏览器的扩展应用对第二浏览器API的调用采用第一计算机编程语言实现,所述转换后的第二浏览器的扩展应用对第一浏览器API的调用采用第二计算机编程语言实现;
所述第一计算机编程语言和第二计算机编程语言为相同的语言,或者,所述第一计算机编程语言和第二计算机编程语言为不相同的语言。
3.一种在浏览器中实现扩展应用的方法,其特征在于,第一浏览器上安装有第二浏览器的扩展应用,所述第一浏览器和第二浏览器为两种不同类型的浏览器,所述方法包括:
第一浏览器解析第二浏览器的扩展应用的界面描述文件,得到第二浏览器的扩展应用的界面描述数据;
将所述第二浏览器的扩展应用的界面描述数据转换为第一浏览器支持的界面描述数据;
所述第一浏览器将所述转换后的第二浏览器的扩展应用的界面描述数据存储在所述第一浏览器的界面数据结构中,所述第一浏览器的界面描述结构用于描述第一浏览器的界面呈现方式;
所述第一浏览器读取所述第一浏览器的界面数据结构中的界面描述数据,所述读取出来的界面描述数据包括所述第二浏览器的扩展应用的界面描述数据;
所述第一浏览器按照所述第二浏览器的扩展应用的界面描述数据在第一浏览器的展示界面中显示所述第二浏览器的扩展应用的展示界面。
4.根据权利要求3所述的方法,其特征在于,所述第一浏览器的界面数据结构采用文件形式进行存储;或者,所述第一浏览器的界面数据结构采用结构体的形式存储在内存中。
5.一种在浏览器中实现扩展应用的方法,其特征在于,在第一浏览器上安装第二浏览器的扩展应用,所述第一浏览器和第二浏览器为两种不同类型的浏览器,所述方法包括:
所述第一浏览器解析所述第二浏览器的扩展应用的安装包,得到所述第二浏览器的扩展应用的扩展描述数据;
所述第一浏览器将所述第二浏览器的扩展应用的扩展描述数据按照第一浏览器支持的数据格式转换成所述第一浏览器支持的扩展描述数据;
所述第一浏览器通过所述转换后的扩展描述数据对所述第二浏览器的扩展应用进行管理。
6.根据权利要求5所述的方法,其特征在于,所述管理包括扩展应用的安装、加载、卸载、扩展功能的使用和禁用。
7.一种浏览器,其特征在于,所述浏览器为第一浏览器,安装有第二浏览器的扩展应用,并设有适配器模式,所述第一浏览器和第二浏览器为两种不同类型的浏览器,所述第一浏览器包括:
接收模块,用于在适配器模式下,接收第二浏览器的扩展应用对第二浏览器应用程序接口API的调用;
转换模块,用于将第二浏览器的扩展应用对第二浏览器API的调用转换为对第一浏览器API的调用;
所述第二浏览器的扩展应用,用于在第一浏览器中通过所述转换后的对第一浏览器API的调用,执行所述第二浏览器的扩展应用的功能。
8.根据权利要求7所述的浏览器,其特征在于,所述第二浏览器的扩展应用对第二浏览器API的调用采用第一计算机编程语言实现,所述转换后的第二浏览器的扩展应用对第一浏览器API的调用采用第二计算机编程语言实现;
所述第一计算机编程语言和第二计算机编程语言为相同的语言,或者,所述第一计算机编程语言和第二计算机编程语言为不相同的语言。
9.一种浏览器,其特征在于,所述浏览器为第一浏览器,安装有第二浏览器的扩展应用,所述第一浏览器和第二浏览器为两种不同类型的浏览器,所述第一浏览器包括:
解析模块,用于解析第二浏览器的扩展应用的界面描述文件,得到第二浏览器的扩展应用的界面描述数据;
转换处理模块,用于将所述第二浏览器的扩展应用的界面描述数据转换为第一浏览器支持的界面描述数据;并将所述转换后的第二浏览器的扩展应用的界面描述数据存储在所述第一浏览器的界面数据结构中,所述第一浏览器的界面描述结构用于描述第一浏览器的界面呈现方式;
读取模块,用于读取所述第一浏览器的界面数据结构中的界面描述数据,所述读取出来的界面描述数据包括所述第二浏览器的扩展应用的界面描述数据;
显示模块,用于按照所述第二浏览器的扩展应用的界面描述数据在第一浏览器的展示界面中显示所述第二浏览器的扩展应用的展示界面。
10.根据权利要求9所述的浏览器,其特征在于,所述第一浏览器的界面数据结构采用文件形式进行存储;或者,所述第一浏览器的界面数据结构采用结构体的形式存储在内存中。
11.一种浏览器,其特征在于,所述浏览器为第一浏览器,在第一浏览器上安装第二浏览器的扩展应用,所述第一浏览器包括:
解析模块,用于解析所述第二浏览器的扩展应用的安装包,得到所述第二浏览器的扩展应用的扩展描述数据,所述第一浏览器和第二浏览器为两种不同类型的浏览器;
转换模块,用于将所述第二浏览器的扩展应用的扩展描述数据按照第一浏览器支持的数据格式转换成所述第一浏览器支持的扩展描述数据;
扩展应用管理模块,用于通过所述转换后的扩展描述数据对所述第二浏览器的扩展应用进行管理。
12.根据权利要求11所述的浏览器,其特征在于,所述管理应包括扩展应用的安装、加载、卸载、扩展功能的使用和禁用。
CN201210292249.5A 2012-08-16 2012-08-16 在浏览器中实现扩展应用的方法及浏览器 Active CN103593370B (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN201210292249.5A CN103593370B (zh) 2012-08-16 2012-08-16 在浏览器中实现扩展应用的方法及浏览器
PCT/CN2013/081449 WO2014026608A1 (en) 2012-08-16 2013-08-14 Method and apparatus for implementing extended application
EP13829116.6A EP2885709A1 (en) 2012-08-16 2013-08-14 Method and apparatus for implementing extended application
US14/622,472 US20150154059A1 (en) 2012-08-16 2015-02-13 Method and apparatus for implementing extended application

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210292249.5A CN103593370B (zh) 2012-08-16 2012-08-16 在浏览器中实现扩展应用的方法及浏览器

Publications (2)

Publication Number Publication Date
CN103593370A CN103593370A (zh) 2014-02-19
CN103593370B true CN103593370B (zh) 2017-08-22

Family

ID=50083519

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210292249.5A Active CN103593370B (zh) 2012-08-16 2012-08-16 在浏览器中实现扩展应用的方法及浏览器

Country Status (4)

Country Link
US (1) US20150154059A1 (zh)
EP (1) EP2885709A1 (zh)
CN (1) CN103593370B (zh)
WO (1) WO2014026608A1 (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110049012B (zh) * 2014-06-23 2022-01-18 华为技术有限公司 一种路由设备的操作方法、路由设备和终端设备
CN104281455A (zh) * 2014-10-11 2015-01-14 北京金山安全软件有限公司 一种接口调用方法、装置及终端
EP3326077A4 (en) * 2015-07-20 2019-03-20 Ent. Services Development Corporation LP WEB APPLICATION SETTING FOR DIFFERENT BROWSERS
CN106681852B (zh) * 2016-12-22 2019-11-26 优地网络有限公司 一种浏览器兼容性的调整方法及装置
US10579373B2 (en) * 2017-02-07 2020-03-03 Microsoft Technology Licensing, Llc Seamless extension porting
CN108563728B (zh) * 2018-04-04 2021-01-19 东软医疗系统股份有限公司 一种通过浏览器上传医学影像文件的方法和装置
CN109068059B (zh) * 2018-08-27 2020-09-11 Oppo广东移动通信有限公司 一种调用相机的方法、移动终端及存储介质
US11010212B2 (en) 2019-06-13 2021-05-18 Microsoft Technology Licensing, Llc System and method for supporting and negotiating multiple API versions across multiple products
US20230069222A1 (en) * 2021-08-12 2023-03-02 Seagate Technology Llc Adaptive api translator

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7069562B2 (en) * 2001-12-12 2006-06-27 Sun Microsystems, Inc. Application programming interface for connecting a platform independent plug-in to a web browser
CN101960446A (zh) * 2008-03-02 2011-01-26 雅虎公司 基于安全浏览器的应用

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7028306B2 (en) * 2000-12-04 2006-04-11 International Business Machines Corporation Systems and methods for implementing modular DOM (Document Object Model)-based multi-modal browsers
CN101299220A (zh) * 2008-06-24 2008-11-05 腾讯科技(深圳)有限公司 多页面浏览器窗口拆分方法、合并方法和多页面浏览器
US8595698B2 (en) * 2008-09-30 2013-11-26 Arfinity, LLC Computer readable medium for translating protocols
US8352967B2 (en) * 2008-11-10 2013-01-08 Google Inc. Safe browser plugins using native code modules
US9270683B2 (en) * 2009-05-15 2016-02-23 Amazon Technologies, Inc. Storage device authentication
CN101924779B (zh) * 2009-06-15 2014-10-08 北京搜狗科技发展有限公司 浏览器客户端共享资源的方法、设备及系统
CN101639774B (zh) * 2009-08-31 2012-06-27 腾讯科技(深圳)有限公司 一种浏览器控件的封装方法及装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7069562B2 (en) * 2001-12-12 2006-06-27 Sun Microsystems, Inc. Application programming interface for connecting a platform independent plug-in to a web browser
CN101960446A (zh) * 2008-03-02 2011-01-26 雅虎公司 基于安全浏览器的应用

Also Published As

Publication number Publication date
WO2014026608A1 (en) 2014-02-20
EP2885709A4 (en) 2015-06-24
EP2885709A1 (en) 2015-06-24
US20150154059A1 (en) 2015-06-04
CN103593370A (zh) 2014-02-19

Similar Documents

Publication Publication Date Title
CN103593370B (zh) 在浏览器中实现扩展应用的方法及浏览器
WO2020048326A1 (zh) 一种界面显示方法、系统及终端设备
US11675471B2 (en) Optimized joint document review
TWI522894B (zh) 用於電子元件中的方法、電腦程式產品以及非暫時性電腦可讀記錄媒體
US20120174020A1 (en) Indication of active window when switching tasks in a multi-monitor environment
CN107515702B (zh) 一种页面交互方法及装置
KR20230025675A (ko) 컨텐츠를 처리하는 방법 및 이를 위한 이동 통신 장치 및 저장 매체
CN105468137B (zh) 电子装置及用于多形态融合的方法
CN109471626B (zh) 页面逻辑结构、页面生成方法、页面数据处理方法及装置
US20140317524A1 (en) Automatic magnification and selection confirmation
US9888061B2 (en) Method for organizing home screen and electronic device implementing the same
KR20120026053A (ko) 계층적-체계화된 컨트롤 갤러리들
US20170235473A1 (en) Method and Apparatus for Loading Application Program View, and Electronic Terminal
US20140145945A1 (en) Touch-based input control method
US20150169519A1 (en) Electronic reading device and method for extracting and saving text information thereof, and storage medium
US20140040797A1 (en) Widget processing method and apparatus, and mobile terminal
US20120260203A1 (en) Adaptive drag and drop zone
CN106020434B (zh) 人机接口设备输入融合的方法、设备及产品
KR20150072819A (ko) 전자장치에서 디지털 콘텐츠를 디스플레이하기 위한 방법 및 장치
CN109101225B (zh) 组件构造方法及装置、组件库架构及计算机可读存储介质
JP2016520932A (ja) マルチディスプレイシステム
US20140351745A1 (en) Content navigation having a selection function and visual indicator thereof
CN114048415A (zh) 表单生成方法及装置、电子设备和计算机可读存储介质
KR20120131911A (ko) 전자책 사용자 인터페이스를 제공하기 위한 전자책 시스템, 방법 및 기록매체
CN105528334A (zh) 一种文档操作处理的方法以及终端

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant