WO2013091556A1 - 一种基于浏览器的应用程序的扩展方法及装置 - Google Patents

一种基于浏览器的应用程序的扩展方法及装置 Download PDF

Info

Publication number
WO2013091556A1
WO2013091556A1 PCT/CN2012/087032 CN2012087032W WO2013091556A1 WO 2013091556 A1 WO2013091556 A1 WO 2013091556A1 CN 2012087032 W CN2012087032 W CN 2012087032W WO 2013091556 A1 WO2013091556 A1 WO 2013091556A1
Authority
WO
WIPO (PCT)
Prior art keywords
application
browser
interface
page file
request
Prior art date
Application number
PCT/CN2012/087032
Other languages
English (en)
French (fr)
Inventor
董航
谭志辉
蔡凯捷
谢昕虬
王鹏
黄奎
杨文泽
李斌
Original Assignee
腾讯科技(深圳)有限公司
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
Priority claimed from CN201110434701.2A external-priority patent/CN103176775B/zh
Priority claimed from CN201110439649XA external-priority patent/CN103179166A/zh
Application filed by 腾讯科技(深圳)有限公司 filed Critical 腾讯科技(深圳)有限公司
Priority to KR1020137035125A priority Critical patent/KR20140018414A/ko
Priority to US14/129,880 priority patent/US20140317537A1/en
Publication of WO2013091556A1 publication Critical patent/WO2013091556A1/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • 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/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • G06F9/45529Embedded in an application, e.g. JavaScript in a Web browser

Definitions

  • the present invention relates to the field of application development, and in particular, to a method and apparatus for extending a browser-based application.
  • various applications are installed on various smart terminals such as computers, tablets, and smart phones.
  • the types of applications vary, and the functions performed are different, and the interface styles provided are also different.
  • word provides the ability to edit doc files
  • photoshop provides drawing functions, and more.
  • the embodiment of the present invention provides a method and device for expanding a browser-based application. Its technical solutions are as follows:
  • an extension of a browser-based application including:
  • the browser kernel parses the page file, generates and displays a corresponding application interface; the script object receives a request from the application interface, invokes the service component according to the request, and returns a call result to the The application interface.
  • an extension device of a browser-based application includes: a main process module, a loading module, a browser kernel, a script object processing module, and an interface processing module; the main process module is configured to invoke the loading module if a startup request of the application is received; and the loading module is configured to load the browsing a kernel, embedding the script object processing module in the browser kernel; loading a page file according to the startup request and passing the loaded page file to the browser kernel; the browser kernel is configured to parse the page a file, an application interface is generated and passed to the interface processing module; the interface processing module is configured to display the application interface; the script object processing module is configured to receive a request from the application interface, according to The request invokes a service component and returns the result of the call to the application interface.
  • the technical solution provided by the embodiment of the present invention has the following beneficial effects: by loading a page file and a browser kernel in a client process, the browser kernel parses the page file to generate a client interface and obtains a script object, and passes the browser kernel.
  • the scripting engine invokes the service component according to the script object, provides the corresponding service in the generated client interface, implements the client that combines the web technology and the browser kernel, and the client interface is generated by the browser kernel parsing the page file.
  • FIG. 1 is a flow chart of an extension method of a browser-based application provided by a first embodiment of the present invention
  • FIG. 2 is a flowchart of a method for expanding a browser-based application according to a second embodiment of the present invention
  • 3 is a schematic diagram of an interface displayed by an extension method of a browser-based application according to a second embodiment of the present invention
  • FIG. 4 is a schematic diagram of a method for expanding a browser-based application according to a second embodiment of the present invention.
  • FIG. 5 is a flowchart of a method for expanding a browser-based application according to a third embodiment of the present invention.
  • FIG. 6 is a schematic diagram of an interface displayed by an extension method of a browser-based application according to a third embodiment of the present invention.
  • FIG. 7 is a flow chart of an extension method of a browser-based application according to a fourth embodiment of the present invention.
  • FIG. 8 is a flow chart of an extension method of a browser-based application according to a fifth embodiment of the present invention.
  • Figure 9 is a schematic illustration of an extension device of a browser-based application provided by a sixth embodiment of the present invention.
  • Figure 10 is a schematic diagram of a browser kernel of the extension device of the sixth embodiment.
  • Embodiments of the present invention relate to a browser kernel and a script engine.
  • the browser kernel refers to
  • “Rendering Engine” can also be translated as “interpretation engine”. It is primarily responsible for interpreting the syntax of the web page and rendering the web page.
  • the web page syntax may include: HTML (Hypertext Markup Language), JS (JavaScript, Script), and the like. Therefore, the browser kernel is also the rendering engine used by the browser.
  • the script engine is an interpreter of a computer programming language, such as ASP (Active Server Page), PHP (Hypertext Preprocessor, Hypertext Preprocessor), JS, etc. for building a website, and its function is to explain Execute the user's program text and translate it into machine code that the computer can execute to perform a series of functions.
  • a first embodiment of the present invention provides a method for extending a browser-based application, including:
  • the browser kernel parses the page file, generates and displays an application interface
  • the script object receives a request from the application interface, invokes the service component according to the request, and returns a call result to the application interface.
  • the page file refers to a file that contains related information on an application interface.
  • the related information on the application interface includes but is not limited to: element layout of the application interface, interface style, button operation, etc., and the information specifically describes the interface of the application, and therefore, the application can be drawn by using the information. interface.
  • the page file is, for example, an HTML file.
  • step 102 may specifically include:
  • the browser kernel parses the HTML file and reads the CSS specified by the HTML file ( Cascading
  • Style Sheet Cascading Style Sheets
  • JS JS
  • the markup element in the HTML file describes the element layout of the interface
  • the CSS describes the style of the interface
  • the JS describes the control operation on the interface.
  • page file is not limited to an HTML file, for example, it may also be PHP, and
  • the dynamic script file is first interpreted as an HTML file by a script engine embedded in the browser kernel, and then the browser kernel parses and generates the application interface according to the above process.
  • the script object in the embodiment of the present invention includes: a script object built in a script engine, and / or, a custom script object, the present invention is not limited thereto. Users can define different script objects as needed.
  • the script engine can embed these custom script objects in the runtime environment and invoke the service components through these script objects.
  • Different browser kernels have different scripting methods for embedding script objects.
  • the scripting engines of the three browser kernels such as IE, Chrome, and Firefox use different methods to embed script objects. .
  • the service component in the embodiment of the present invention includes: a general service component provided by an operating system, and/or an extended service component, which is not limited by the present invention. Since the functionality of the generic service component is generally limited, preferably, the extended service component is employed to perform various required functions, including but not limited to: accessing files, creating process threads, or establishing TCP with other clients. (Transmission Control Protocol) or UDP (User Datagram Protocol) communication function, etc., which is not limited by the present invention. For example, the function of transferring files between two clients can be realized by extending the network service component and the storage service component, which has strong practicability.
  • Transmission Control Protocol Transmission Control Protocol
  • UDP User Datagram Protocol
  • the application interface is generated by the browser kernel parsing the page file, compared with the prior art
  • This way of using web technology is no longer limited by different operating systems.
  • the developed application can be applied to any operating system without different development for different operating systems, which greatly reduces the development process and reduces the development process. Difficulties in development, High development efficiency.
  • the method of the embodiment provides an additional script object in the browser kernel, thereby providing the browser-based application with access to other service components in the operating system.
  • Capabilities such as the ability to access files without the support of a general browser, the ability to create process threads, or the ability to establish TCP or UDP communication with other clients.
  • a second embodiment of the present invention provides a method for extending a browser-based application, including:
  • the page file is loaded, and the browser kernel is loaded.
  • the page file is specifically an HTML file.
  • the load of the page file and the browser kernel can be performed by the loader.
  • the browser kernel parses the HTML file, and reads the CSS and JS specified in the HTML file.
  • the CSS and JS used in the page to be drawn are specified in the HTML file.
  • the meanings of HTML, CSS, and JS are the same as those in the above embodiment, and are not described here.
  • the browser kernel draws the application interface based on the markup elements and CSS in the HTML file.
  • the browser kernel draws an application interface on the application window according to the markup element and the CSS rendering interface in the HTML file, wherein the application window has no default background and border.
  • the application's window is a window that has been created when the application's process is created, and is the carrier of the application interface.
  • the browser kernel can be used to construct two kinds of windows as shown in Figure 3.
  • the interface with a unified border shown on the left side of Figure 3 is similar to the normal use of a browser to browse web pages, with the browser itself.
  • Interface elements such as toolbars, the interface without a border shown on the right side of Figure 3 (only includes the page itself, not including other interface elements).
  • either of the above methods differs greatly from the interface style of a typical client application.
  • the following window drawing mode can also be adopted instead of the window style that comes with the browser kernel.
  • the specific process in the technical implementation is as follows: First, the background of the requirements page needs to be completely transparent, and then the browser kernel renders the relevant page elements, and finally gets a bitmap with a transparent channel. Using the functions provided by the operating system, a window can be given a bitmap with a transparent channel, thus realizing a shaped, partially transparent window. In terms of visual effects, Browser-based web content becomes a true window style.
  • the script object receives a request from the application interface, invokes the service component according to the request, and returns a call result to the application interface.
  • the script object in this embodiment includes: a script object built in a script engine, and/or a customized script object; the service component includes: a general service component provided by an operating system, and/or an extended
  • the service component is specifically described in the foregoing embodiment, and details are not described herein.
  • a plug-in can also be used to provide a corresponding service on the interface of the application.
  • the plug-ins include, but are not limited to, an IE browser's ActiveX plug-in, or other browser's NP (Netscape Plugin) plug-ins, etc., which provide various functions required on the application interface.
  • the method of calling the service component by using the script object is more convenient to use, and more importantly, the security is controllable. By inserting the script object, the access range of the script can be completely controlled. Access rights, which greatly improve security.
  • FIG. 4 it is a schematic diagram of the overall process of the foregoing method provided by the embodiment, where the loading operation is performed by the loader as an example.
  • the loader first loads the HTML file and the browser kernel, and then notifies the browser kernel to parse the HTML file.
  • the browser kernel obtains the script object by parsing the HTML file and its specified CSS and JS, according to the HTML.
  • the CSS draws the application interface, and the scripting engine in the browser kernel invokes the service component according to the script object, and provides the corresponding service in the interface of the application.
  • the method may further include:
  • the user is prompted to download the latest version of the application, and when the user selects to download, the latest version of the application's page file is downloaded from the server.
  • the version information of the page file it can be determined whether the application has the latest version, so that the download of the latest version of the page file can be completed according to the user's needs, and the effect of updating the version of the application in time can be achieved. And, in When there is no latest version, there is no need to perform unnecessary download operations, which reduces the traffic pressure on the server.
  • the version information may be judged after each time the page file is loaded, or the version information may be periodically determined, which is not limited by the present invention.
  • the page file is preferably an encrypted page file, and correspondingly, the loading page file includes:
  • the encrypted page file is decrypted first, and then the decrypted page file is loaded.
  • the page file when downloading the latest version of the page file from the server, the page file is transmitted in encrypted ciphertext, thereby avoiding the danger of the page file being intercepted by an illegal user and malicious modification, thereby improving security.
  • the service component includes: at least one of a network service component, a storage service component, a process thread service component, and a media service component.
  • the network service component provides network communication functions, such as establishing a TCP or UDP connection between clients; the storage service component provides a function of reading and writing files; the process thread service component provides a function of creating a process thread; and the media service component provides access to a media file.
  • the foregoing method provided in this embodiment, by loading a page file and a browser kernel in an application process, parsing the page file by the browser kernel to generate an application interface and obtaining a script object, and using the script engine in the browser kernel according to the script object Calling the service component, providing the corresponding service in the interface of the application, combining the web technology and the browser kernel to realize the application development, provides a reliable solution for quickly building the application.
  • the application interface is generated by the browser kernel after parsing the page file.
  • the development code of the interface is not required to be separately written in the development package, so that a lot of work of the interface development is obtained through the browser kernel. , greatly shortened the development cycle.
  • the browser kernel draws the interface based on the elements in the page file. This way of using web technology is no longer restricted by different operating systems, allowing developers to ignore the implementation details of the specific platform. To describe the interface, the actual drawing of all the elements is done by the browser kernel, which greatly reduces the workload, and developers no longer need to face the development platform and SDK (Software Development Kit) of each operating system.
  • the developed application can be applied to any operating system, without different development for different operating systems, which greatly reduces the development process, reduces the difficulty of development, and improves the development efficiency.
  • accessing the component by the script object to access the resources of the operating system is completely controllable, and the user can set different script objects according to the security level requirement, and selectively invoke the service component, thereby Improve the security of operating system resource access, and reduce the occurrence of dangerous operations and greatly improve security compared with all the resources of the operating system in which the SDK that invokes the operating system can access the operating system.
  • FIG. 5 is a flowchart of a method for expanding a browser-based application provided by the third embodiment. As shown in Figure 5, the method includes the following steps:
  • Step 301 download the application file.
  • Application files can include page files as well as configuration information.
  • Step 302 Install the application according to the downloaded application file.
  • the installation of an application essentially refers to the process of saving the files necessary to run the application and providing access to the application in the application's runtime environment, allowing the application to be easily launched by the user.
  • the application configuration information and/or other program files may be stored in a folder named according to the ID of the application; or, the configuration information of the application and/or other program files may be stored in an ID according to the application ID.
  • the shared storage space Within the shared storage space.
  • the installation of an application may include the following operations: Establishing a process of registering a file or service in a format to establish a startup item within the system.
  • the desktop space includes the desktop, the program launch bar, and the like.
  • some third-party applications also maintain a customized desktop space.
  • the customized desktop space can be operated only as a window of the system's desktop space, or completely replace the system.
  • Desktop space as an entry point and window management space for various applications.
  • the first desktop space 110 is, for example, a desktop space provided by an operating system
  • the second desktop space 120 is, for example, a desktop space maintained by a main process module.
  • a shortcut to one or more browser-based applications is provided in the second desktop space 120, and the browser-based application is launched after the user clicks on the shortcuts, and the interface of the browser-based application The window is managed by the second desktop space 120.
  • the corresponding startup item (such as shortcut 112) must be generated in the second desktop space 120 during installation.
  • a corresponding launch item (e.g., shortcut 111) needs to be generated in the first desktop space 110. Therefore, when the user installs the browser-based application, in addition to completing the installation in the second desktop space 120 by default, the following steps may be included:
  • Step 303 Determine whether to install to other desktop spaces. If the result is yes, proceed to step 304 to install the above browser-based application in the other desktop space mentioned above, otherwise the installation process is completed.
  • the other desktop space described above is, for example, the first desktop space 110 shown in FIG. 6, and the first startup item is generated in the first desktop space 110 to be installed in the first desktop space 110.
  • the browser-based application itself does not have to include any direct executables.
  • the browser-based application by launching a startup item pointing to the browser-based application in different desktop spaces, the browser-based application can be conveniently launched in different desktop spaces.
  • the program makes it easier for browser-based applications to start the same process as other client programs.
  • step 101 specifically includes the following steps:
  • Step 401 The first startup item triggers a startup request; for example, the user double-clicks the shortcut 111 in the first desktop space 110 to trigger an application startup request.
  • Step 402 Determine whether the main process module has been started; if the main process module is not started, proceed to step S403: Start the main process module; and then proceed to step 404. If the main process module has been started, step 404 is directly executed.
  • Step 404 The main process module determines an operation mode according to a source of the startup request.
  • the foregoing determining the operation mode refers to setting parameters for a subsequent process of loading a page file, displaying an application interface, and the like.
  • the startup request is from the first desktop space.
  • the main process module can run in the background, and the application interface in step 102 can be displayed in the first desktop space, and the second desktop is generated if the startup request is from the second startup item.
  • the application interface is displayed in the space.
  • the application interface may be adjusted to a first interface style that matches the first desktop space; if the startup request is from the second startup item, the application interface may be adjusted to the second A second interface style that matches the desktop space.
  • the interface of the browser-based application may be drawn into a general style close to other client applications in the first desktop space 110 as described in the second embodiment, thereby The browser's application is closer to the average client application.
  • the method of this embodiment further includes the following steps:
  • Step 405 Determine whether the server has been logged in to the server. If not, go to step 406 to perform the login operation. Otherwise, go directly to step 407 to load the page file.
  • the operation mode is different according to the source of the startup request. For example, if the startup request is from the first startup item, only the login interface should be displayed, and other interfaces should not be displayed. As shown in FIG. 6, other interface elements in the second desktop space 120.
  • the browser-based application can be run in different manners for the startup request of different sources, so that the corresponding desktop space is matched to the maximum extent, thereby avoiding damage. User's usage habits.
  • the embodiment provides a method for expanding a browser-based application, and the method of the fourth embodiment is similar. The difference is that, referring to FIG. 8, the following steps are further included:
  • Step 501 Record the source of the startup request of the browser-based application. Similar to the embodiments described above, the launch request may be, for example, from a boot entry within the first desktop space or the second desktop space. Moreover, as described above, the main process module needs to maintain both the second desktop space and the application launch request from the first desktop space.
  • Step 502 Receive an exit request of the main process module.
  • the user may opt out of the second desktop space within the second desktop space.
  • the exit request of the above main process module is triggered.
  • Step 503 closing all browser-based applications that are run according to the startup request from the second desktop space.
  • Step 504 Determine whether there is a browser-based application running according to the startup request from the first desktop space. If the result is yes, step S505 is performed, otherwise step 506 is performed.
  • Step 505 Convert the main process module to the background running mode, that is, hide the second desktop space. Step 506, the main process module is closed.
  • the extension method of the browser-based application of the embodiment is directed to different desktop spaces.
  • the browser-based program that runs runs differently when it is closed, and the processing method is more flexible.
  • the embodiment provides an extension device of a browser-based application.
  • the main process module 610, the load module 620, the browser kernel 630, the script object processing module 640, and the interface processing module 650 are included.
  • the main process module 610 is configured to invoke the load module 620 upon receiving a start request from the application.
  • the main process module 610 includes a request receiving unit 611, a login unit 612, and an exit unit 613.
  • the request receiving unit 611 is configured to receive a start request of the application, and may call the login unit 612 and the exit unit 613 if necessary.
  • the login unit 612 is configured to: determine whether the server has been logged in to the server; if not, log in to the server to perform a login operation and obtain the ticket information returned by the server after the login is successful.
  • the exit unit 613 is configured to determine whether there is a browser-based application running according to the startup item from the first desktop space if the exit request is received, and if so, to convert the main process module to the background running mode.
  • the main process module 610 can also maintain the second desktop space as shown in FIG. 6, and details are not described herein again.
  • the loading module 620 is configured to load the browser kernel 630, the script object processing module 640 is embedded in the browser kernel 630, the startup request loads the page file and passes the loaded page file to the browser kernel 630;
  • the load module 620 can be run independently or embedded in the main process module 610.
  • the page file may be a hypertext markup language HTML file
  • the browser kernel 630 includes:
  • the parsing module 631 is configured to parse the HTML file, read the cascading style sheet CSS and the script JS specified by the HTML file, and obtain the script object according to the JS;
  • the drawing module 632 is configured to draw the interface of the client according to the marking element and the CSS in the HTML file read by the parsing module 502a.
  • the drawing module 632 may be specifically configured to: generate a rendered picture of the interface according to the markup element and the CSS in the HTML file read by the parsing module 631.
  • the browser kernel 630 is used to parse the page file, generate an application interface and pass it to the
  • the interface processing module 650 is configured to display the application interface, and can receive input from a user and respond to user input.
  • the script object processing module 640 is configured to receive a request from the application interface, invoke a service component based on the request, and return a call result to the application interface.
  • the above service components generally refer to functions that are not supported by the browser kernel, such as directly establishing a network communication connection, such as the function of establishing a TCP or UDP connection, the function of directly reading and writing files, the function of creating a process, the function of accessing a media file, etc. Wait.
  • the service component described above includes: at least one of a network service component, a storage service component, a process thread service component, and a media service component.
  • the loading module 620 can be further configured to: after loading the page file, read the version information of the client in the page file, query the server whether the application has the latest version, and if yes, prompt the user to download the application.
  • the latest version when the user chooses to download, downloads the latest version of the application's page file from the server.
  • the page file is an encrypted page file
  • the loading module 620 is further configured to decrypt the encrypted page file before loading the page file.
  • the expansion device of the application of this embodiment may further include an installation module 660 for performing an installation operation. Specifically, it may be configured to generate a first startup item directed to the application in a first desktop space; trigger the startup request if the first startup item is executed; and generate a pointer to the second desktop space a second launch item of the application; triggering the launch request if the second launch item is executed.
  • the installation module 660 can also store the configuration information of the application and/or other program files in a folder named according to the ID of the application; or store the configuration information of the application and/or other program files in the application according to the application. The ID is located within the shared storage space.
  • the main process module 610 is also used to determine the source of the initiation request. If the startup request is from the first startup item, the interface processing module 650 displays the application interface in the first desktop space; if the startup request is from the second startup item, the interface processing module displays the application interface in the second desktop space.
  • the interface processing module 650 is further configured to: if the startup request is from the first startup item, further comprising: adjusting the application interface to a first interface style that matches the first desktop space; and if the starting The request from the second launch item further includes: adjusting the application interface to a second interface style that matches the second desktop space.
  • the foregoing client provided in this embodiment may perform any one of the foregoing method embodiments. For details, refer to the description in the method embodiment, and details are not described herein.
  • the client provided in this embodiment, by loading a page file and a browser kernel in a client process, parsing the page file by the browser kernel to generate a client interface and obtaining a script object, and using the script engine in the browser kernel according to the script
  • the object calls the service component, provides the corresponding service in the client interface, combines the web technology and the browser kernel to realize the client development, and provides a reliable solution for quickly building the client.
  • the client interface is generated by the browser kernel after parsing the page file.
  • the development code of the interface is not required to be separately written in the development package, so that a lot of work of the interface development is obtained through the browser kernel. , greatly shortened the development cycle.
  • the browser kernel draws the interface based on the elements in the page file. This way of using web technology is no longer restricted by different operating systems, allowing developers to ignore the implementation details of the specific platform, and describe the interface through the tag label of the package.
  • the actual drawing of all the elements is done by the browser kernel, which greatly reduces the workload, and the developer does not need to face the development platform and SDK (Software Development Kit) of each operating system, but HTML. Standard, the developed client can be applied to any operating system, without different development for different operating systems, which greatly reduces the development process, reduces the difficulty of development, and improves the development efficiency.
  • the foregoing client provided in this embodiment accesses the resources of the operating system through the script object calling component is completely controllable, and the user can set different script objects according to the security level requirement, and selectively invoke the service component.
  • the security of operating system resource access is improved, and the occurrence of dangerous operations is greatly reduced compared with all the resources of the operating system in which the SDK that invokes the operating system can access the operating system, and the security is greatly improved.
  • a person skilled in the art may understand that all or part of the steps of implementing the above embodiments may be completed by hardware, or may be instructed by a program to execute related hardware, and the program may be stored in a computer readable storage medium.
  • the storage medium mentioned may be a read only memory, a magnetic disk or an optical disk or the like.

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Stored Programmes (AREA)

Abstract

公开了一种基于浏览器的应用程序的扩展方法。该方法包括:若接收到应用程序的启动请求则加载页面文件,加载浏览器内核并将脚本对象嵌入所述浏览器内核(101),所述脚本对象用于与所述应用程序的运行环境内其他服务组件进行交互;所述浏览器内核解析所述页面文件,生成并显示相应的应用程序界面(102);所述脚本对象接收来自所述应用程序界面的请求,根据所述请求调用所述服务组件,并返回调用结果至所述应用程序界面(103)。该方法实现了结合web技术和浏览器内核的应用程序,缩短了应用程序的开发周期,降低了开发难度,且可以应用于任何操作系统,实用性强。还公开了一种基于浏览器的应用程序的扩展装置。

Description

一种基于浏览器的应用程序的扩展方法及装置 技术领域
本发明涉及应用程序开发领域, 特别涉及一种基于浏览器的应用程序的 扩展方法及装置。
背景技术
通常, 在各种智能终端如电脑、 平板电脑及智能手机上会安装有各种应 用程序, 应用程序的种类多种多样, 完成的功能也各不相同, 提供的界面风 格也不尽相同。 例如, word提供编辑 doc文件的功能, photoshop提供绘图 的功能等。
传统的开发应用程序的过程中, 应用程序界面的开发占据了大量的人力 和时间。 并且, 如果要在多个不同的操作系统中发布应用程序, 则无可避免 的需要针对不同的操作系统, 开发出多套界面来满足需求, 过程复杂且周期 较长。 发明内容
为了解决现有技术中客户端开发过程复杂且周期较长的问题, 本发明实 施例提供了一种基于浏览器的应用程序的扩展方法及装置。 其技术方案如 下:
一方面, 一种基于浏览器的应用程序的扩展, 包括:
若接收到应用程序的启动请求则加载页面文件, 加载浏览器内核并将脚 本对象嵌入所述浏览器内核, 所述脚本对象用于与所述应用程序的运行环境 内其他服务组件进行交互;
所述浏览器内核解析所述页面文件, 生成并显示相应的应用程序界面; 所述脚本对象接收来自所述应用程序界面的请求, 根据所述请求调用所 述服务组件, 并返回调用结果至所述应用程序界面。
另一方面, 一种基于浏览器的应用程序的扩展装置, 包括: 主进程模块、 加载模块、 浏览器内核、 脚本对象处理模块以及界面处理模块; 所述主进程 模块用于若接收到所述应用程序的启动请求则调用所述加载模块; 所述加 载模块用于加载所述浏览器内核, 将所述脚本对象处理模块嵌入所述浏览器 内核; 根据所述启动请求加载页面文件并将加载的页面文件传递给所述浏览 器内核; 所述浏览器内核用于解析所述页面文件, 生成应用程序界面并将其 传递给所述界面处理模块; 所述界面处理模块用于显示所述应用程序界面; 所述脚本对象处理模块用于接收来自所述应用程序界面的请求, 根据所述请 求调用服务组件, 并返回调用结果至所述应用程序界面。
本发明实施例提供的技术方案带来的有益效果是: 通过在客户端进程中 加载页面文件和浏览器内核, 由浏览器内核解析页面文件生成客户端界面及 得到脚本对象, 并通过浏览器内核中的脚本引擎根据脚本对象调用服务组 件, 在生成的客户端的界面内提供相应的服务, 实现了结合 web技术和浏览 器内核的客户端, 客户端界面是由浏览器内核解析页面文件后生成的, 与现 有技术相比, 无需在开发包中单独编写界面的开发代码, 使得界面开发的大 量工作通过浏览器内核得到了筒化, 极大地缩短了开发周期; 而且, 浏览器 内核基于页面文件中的元素进行界面绘制, 这种方式不再受不同操作系统的 限制, 开发出的客户端可以应用于任何操作系统, 无需针对不同的操作系统 进行不同的开发, 从而极大地筒化了开发过程, 降低了开发的难度, 提高了 开发效率。 附图概述
为了更清楚地说明本发明实施例中的技术方案, 下面将对实施例描述中 所需要使用的附图作筒单地介绍, 显而易见地, 下面描述中的附图仅仅是本 发明的一些实施例, 对于本领域普通技术人员来讲, 在不付出创造性劳动的 前提下, 还可以根据这些附图获得其他的附图。
图 1是本发明第一实施例提供的基于浏览器的应用程序的扩展方法流程 图;
图 2是本发明第二实施例提供的基于浏览器的应用程序的扩展方法流程 图; 图 3是本发明第二实施例提供的基于浏览器的应用程序的扩展方法显示 的界面示意图;
图 4是本发明第二实施例提供的基于浏览器的应用程序的扩展方法示意 图;
图 5是本发明第三实施例提供的基于浏览器的应用程序的扩展方法流程 图;
图 6是本发明第三实施例提供的基于浏览器的应用程序的扩展方法显示 的界面示意图;
图 7是本发明第四实施例提供的基于浏览器的应用程序的扩展方法流程 图;
图 8是本发明第五实施例提供的基于浏览器的应用程序的扩展方法流程 图;
图 9是本发明第六实施例提供的基于浏览器的应用程序的扩展装置的示 意图。
图 10是第六实施例的扩展装置的浏览器内核的示意图。
本发明的较佳实施方式
为使本发明的目的、 技术方案和优点更加清楚, 下面将结合附图对本发 明实施方式作进一步地详细描述。
本发明实施例涉及浏览器内核和脚本引擎。 所述浏览器内核是指
"Rendering Engine" , 也可翻译为 "解释引擎" 。 它主要负责对网页语法的 解释,并渲染网页。所述网页语法可包括: HTML( Hypertext Markup Language, 超文本标记语言) , JS ( JavaScript, 脚本)等等。 因此, 浏览器内核也就是 浏览器所采用的渲染引擎。 所述脚本引擎是一个计算机编程语言的解释器, 如用于建网站的 ASP ( Active Server Page ,动态服务器页面 )、 PHP ( Hypertext Preprocessor, 超级文本预处理语言)、 JS等, 它的功能是解释执行用户的程 序文本, 将它译成计算机能执行的机器代码, 从而完成一系列的功能。 第一实施例
参见图 1 , 本发明第一实施例提供了一种基于浏览器的应用程序的扩展 方法, 包括:
101 : 若接收到所述应用程序的启动请求则加载页面文件, 加载浏览器 内核并将脚本对象嵌入所述浏览器内核;
102: 浏览器内核解析页面文件, 生成并显示应用程序界面;
103: 所述脚本对象接收来自所述应用程序界面的请求, 根据所述请求 调用所述服务组件, 并返回调用结果至所述应用程序界面。
本发明实施例中, 所述页面文件是指包含有应用程序界面上的相关信息 的文件。 所述应用程序界面上的相关信息包括但不限于: 应用程序界面的元 素布局、界面风格、按钮操作等等, 这些信息具体地描述了应用程序的界面, 因此, 可以通过这些信息绘制出应用程序界面。 所述页面文件例如为 HTML 文件。
当所述页面文件为 HTML文件时, 步骤 102可以具体包括:
浏览器内核解析 HTML文件, 读取 HTML文件指定的 CSS ( Cascading
Style Sheet, 层叠样式表 )和 JS; 根据 HTML文件中的标记元素和 CSS绘制 应用程序的界面。
其中, HTML文件中的标记元素描述界面的元素布局, CSS描述界面的 风格, JS描述界面上的控件操作。
此外, 上述的页面文件并不限于 HTML文件, 例如其还可为 PHP、 及
ASP格式的动态脚本文件, 此时, 步骤 102中, 首先通过浏览器内核内嵌入 的脚本引擎将动态脚本文件解释为 HTML文件,然后浏览器内核按照上述的 过程解析并生成应用程序界面。
本发明实施例中, 当需要针对应用程序开发不同界面时, 可以创建不同 的页面文件, 通过不同的页面文件来得到不同的应用程序界面, 充分满足了 个性化的需求。 而且, 通过创建不同的页面文件来更改应用程序界面, 与传 统的修改界面源代码相比, 筒单方便, 极大地降低了工作量。
本发明实施例中的所述脚本对象包括: 脚本引擎中内置的脚本对象, 和 /或, 自定义的脚本对象, 本发明对此不限定。 用户可以根据需要定义不同的 脚本对象, 脚本引擎可以在运行环境中嵌入这些自定义的脚本对象, 并通过 这些脚本对象来调用服务组件。 不同的浏览器内核, 其脚本引擎嵌入脚本对 象的方法各不相同, 如 IE、 Chrome, Firefox这三种浏览器内核的脚本引擎 就采用不同的方法来嵌入脚本对象, 此处不做过多说明。
本发明实施例中的所述服务组件包括: 操作系统提供的通用服务组件, 和 /或, 扩展后的服务组件, 本发明对此不限定。 由于通用服务组件的功能通 常比较有限, 优选地, 采用扩展后的服务组件以完成各种需求的功能, 包括 但不限于:访问文件的功能,创建进程线程的功能,或与其他客户端建立 TCP ( Transmission Control Protocol , 传输控制十办议 ) 或 UDP ( User Datagram Protocol, 用户数据包协议)通讯的功能等等, 本发明对此不限定。 例如, 可 以通过扩展网络服务组件和存储服务组件, 实现两个客户端之间传输文件的 功能, 具有较强的实用性。
本实施例提供的上述方法, 通过在应用程序进程中加载页面文件和浏览 器内核, 由浏览器内核解析页面文件生成应用程序界面及得到脚本对象, 并 通过浏览器内核中的脚本引擎根据脚本对象调用服务组件, 在应用程序的界 面内提供相应的服务, 实现了结合 web技术和浏览器内核的应用程序开发, 应用程序界面是由浏览器内核解析页面文件后生成的, 与现有技术相比, 无 需在开发包中单独编写界面的开发代码, 使得界面开发的大量工作通过浏览 器内核得到了筒化, 极大地缩短了开发周期; 而且, 浏览器内核基于页面文 件中的元素进行界面绘制,这种使用 web技术的方式不再受不同操作系统的 限制, 开发出的应用程序可以应用于任何操作系统, 无需针对不同的操作系 统进行不同的开发, 从而极大地筒化了开发过程, 降低了开发的难度, 提高 了开发效率。
进一步地, 相比于传统的网页应用程序, 本实施例的方法中通过在浏览 器内核中提供了额外的脚本对象, 从而给基于浏览器的应用程序提供了访问 操作系统中其他的服务组件的能力, 例如一般浏览器并不支持的访问文件的 功能,创建进程线程的功能, 或与其他客户端建立 TCP或 UDP通讯的功能。 第二实施例
参见图 2, 本发明第二实施例提供了一种基于浏览器的应用程序的扩展 方法, 包括:
201 : 若接收到所述应用程序的启动请求则加载页面文件, 并加载浏览 器内核, 在本实施例中, 所述页面文件具体为 HTML文件。
具体地, 可以通过加载器来进行页面文件和浏览器内核的加载。
202: 浏览器内核解析该 HTML文件, 读取该 HTML文件中指定的 CSS 和 JS,
通常, HTML文件中都会指定待绘制的页面所使用的 CSS和 JS, 其中, HTML, CSS和 JS的含义与上述实施例中的描述相同, 此处不赘述。
203: 浏览器内核根据 HTML文件中的标记元素和 CSS绘制应用程序界 面。
具体地, 浏览器内核根据 HTML文件中的标记元素和 CSS渲染界面, 在应用程序的窗口上绘制得到应用程序界面, 其中, 所述应用程序的窗口无 默认的背景和边框。 所述应用程序的窗口是在创建应用程序的进程时就已经 创建的一个窗口, 是应用程序界面的载体。
可以理解,一般来说,采用浏览器内核可以构建如图 3所示的两种窗口, 图 3左边所示的有统一边框的界面 (类似于正常使用浏览器浏览网页, 带有 浏览器自身的工具栏等界面要素) , 图 3右边所示的没有边框的界面 (仅包 括页面自身, 不包括其他界面元素) 。 然而, 无论以上哪种方式与一般的客 户端应用程序的界面风格差异较大。 为了使得本实施例中所述的基于浏览器 的应用程序具有与一般客户端应用户类似的风格, 还可以采用以下的窗口绘 制方式, 而不采用浏览器内核自带的窗口风格。
从浏览器内核获得页面的渲染图,然后根据渲染图,构建出相应的异形, 局部透明的窗口。 在技术实现上具体过程如下: 首先需求页面的背景需要是 完全透明的, 然后浏览器内核渲染出相关的页面元素, 最终得到一个带有透 明通道的位图。 利用操作系统提供的功能, 可以给一个窗口赋予一个有透明 通道的位图, 从而实现了一个异形的, 局部透明的窗口。 从视觉效果来说, 基于浏览器的网页内容变成了真正的窗口风格。
204: 所述脚本对象接收来自所述应用程序界面的请求, 根据所述请求 调用所述服务组件, 并返回调用结果至所述应用程序界面。
本实施例中的所述脚本对象包括: 脚本引擎中内置的脚本对象, 和 /或, 自定义的脚本对象; 所述服务组件包括: 操作系统提供的通用服务组件, 和 /或, 扩展后的服务组件, 具体同上述实施例的描述, 此处不赘述。
另外, 本实施例中还可以采用使用插件的方式在应用程序的界面提供相 应的服务。 所述插件包括但不限于: IE浏览器的 ActiveX插件, 或其它浏览 器的 NP ( Netscape Plugin, 网景插件)插件等等, 这些插件可以提供应用程 序界面上所需的各种功能。 当采用这种浏览器扩展方式时, 需要单独编写插 件的代码且执行插件的安装步骤, 并在页面文件中指定所用插件。 与所述浏 览器扩展方式相比, 采用脚本对象调用服务组件的方式, 使用上更加筒单方 便, 更重要是安全性可控, 通过内嵌脚本对象的方式, 可以完全控制脚本的 访问范围以及访问权限, 从而极大地提高了安全性。
参见图 4, 为本实施例提供的上述方法的整体流程示意图, 其中, 以加 载器执行加载操作为例进行说明。 在应用程序的进程中, 加载器先加载 HTML文件以及浏览器内核, 然后通知浏览器内核对 HTML文件进行解析, 浏览器内核通过解析 HTML文件以及其指定的 CSS和 JS, 得到脚本对象, 根据 HTML和 CSS绘制应用程序界面, 并由浏览器内核中的脚本引擎根据 该脚本对象调用服务组件, 在应用程序的界面中提供相应的服务。
在图 1或图 2所示的实施例的基础上,进一步地,在加载页面文件之后, 还可以包括:
在页面文件中读取应用程序的版本信息;
向服务器查询应用程序是否有最新版本;
如果是,则提示用户是否下载应用程序的最新版本, 当用户选择下载时, 从服务器下载应用程序的最新版本的页面文件。 通过解析页面文件的版本信 息, 可以确定应用程序是否有最新版本, 从而可以根据用户的需要完成最新 版本的页面文件的下载, 能够达到应用程序及时更新版本的效果。 而且, 在 没有最新的版本时, 无需进行多余的下载操作, 减轻了服务器的流量压力。 其中, 可以在每次加载页面文件后, 都进行版本信息的判断, 或者也可 以定期地对版本信息进行判断, 本发明对此不限定。
可以理解, 上述的步骤仅针对需要更新的情形时全用, 例如, 页面文件 是存储在本地存储器或者用户个人的存储空间内时才进行。 若页面文件是由 应用程序发布方在网络中提供的最新版本, 则无须进行上述的更新操作。
另外, 本发明提供的上述任一种方法中, 为了进一步地提高安全性, 所 述页面文件优选地为加密的页面文件, 相应地, 所述加载页面文件, 具体包 括:
先对加密的页面文件进行解密, 然后加载解密后的页面文件。
例如, 从服务器下载最新版本的页面文件时, 页面文件以加密后的密文 形式传输, 从而可以避免页面文件被非法用户截获, 以及恶意修改等危险, 提高了安全性。
本实施例中, 所述服务组件包括: 网络服务组件、 存储服务组件、 进程 线程服务组件和媒体服务组件中的至少一种。 所述网络服务组件提供网络通 讯的功能, 如客户端之间建立 TCP或 UDP连接; 存储服务组件提供读写文 件的功能; 进程线程服务组件提供创建进程线程的功能; 媒体服务组件提供 访问媒体文件的功能等等。 本实施例提供的上述方法, 通过在应用程序进程中加载页面文件和浏览 器内核, 由浏览器内核解析页面文件生成应用程序界面及得到脚本对象, 并 通过浏览器内核中的脚本引擎根据脚本对象调用服务组件, 在应用程序的界 面内提供相应的服务,结合了 web技术和浏览器内核实现了应用程序的开发, 为快速搭建应用程序提供了一种可靠的方案。
其中, 应用程序界面是由浏览器内核解析页面文件后生成的, 与现有技 术相比, 无需在开发包中单独编写界面的开发代码, 使得界面开发的大量工 作通过浏览器内核得到了筒化, 极大地缩短了开发周期。 而且, 浏览器内核 基于页面文件中的元素进行界面绘制,这种使用 web技术的方式不再受不同 操作系统的限制, 让开发人员忽略具体平台的实现细节, 通过筒单的标签标 记来描述界面, 所有元素的实际绘制则由浏览器内核来完成, 极大地减少了 工作量, 且开发人员无需再面对各个操作系统的开发平台和 SDK ( Software Development Kit, 软件开发工具包) , 而是 HTML标准, 开发出的应用程序 可以应用于任何操作系统, 无需针对不同的操作系统进行不同的开发, 从而 极大地筒化了开发过程, 降低了开发的难度, 提高了开发效率。
另外, 本实施例提供的上述方法, 通过脚本对象调用组件来访问操作系 统的资源是完全可控的, 用户可以根据安全级别的需要来设置不同的脚本对 象, 有选择性地调用服务组件, 从而提高操作系统资源访问的安全性, 与现 有技术中调用操作系统的 SDK可以访问操作系统的所有资源相比, 减少了 危险操作的发生, 极大地提高了安全性。
第三实施例
图 5是第三实施例提供的基于浏览器的应用程序的扩展方法流程图。 如 图 5所示, 该方法包括以下步骤:
步骤 301 , 下载应用程序文件。 应用程序文件可包括页面文件以及配置 信息。
步骤 302, 根据下载的应用程序文件安装应用程序。
应用程序的安装实质上是指保存运行应用程序所必须的文件, 并在应用 程序的运行环境中提供访问应用程序的入口, 而使应用程序可以被用户方便 的启动的过程。 例如, 可将应用程序的配置信息和 /或其他程序文件存储在根 据应用程序的 ID命名的文件夹内; 或者, 将应用程序的配置信息和 /或其他 程序文件存储在根据应用程序的 ID定位的共享存储空间内。
以 Windows操作系统为例,应用程序的安装可能会包括以下操作: 建立 进行注册以与某种格式的文件或者服务相关联, 在系统内建立启动项的过 程。
可以理解, 当今的各种视窗化的操作系统在启动后都会维护一个桌面空 间, 以方便应用程序的启动及对启动后的应用程序窗口进行管理。 以 Windows操作系统为例, 桌面空间会包括桌面、 程序启动栏等内容。 此外, 除了操作系统自身提供的桌面空间外, 一些第三方应用也会维护一个自定义 的桌面空间, 自定义的桌面空间可以是仅作为系统的桌面空间的一个窗口运 行, 也可以完全取代系统的桌面空间而作为各种应用程序的入口及窗口管理 空间。
参阅图 6, 第一桌面空间 110例如为操作系统所提供的桌面空间, 而第 二桌面空间 120例如为一个主进程模块所维护的桌面空间。 在第二桌面空间 120 中会提供一个或多个基于浏览器的应用程序的快捷方式, 在用户点击这 些地快捷方式后启动相应的基于浏览器的应用程序, 这些基于浏览器的应用 程序的界面窗口由第二桌面空间 120进行管理。
对于基于浏览器的应用程序, 在默认情形下, 在安装时仅须在第二桌面 空间 120中生成相应的启动项 (如快捷方式 112 ) 即可。 然而, 要获取与位 于第一桌面空间内的一般的客户端应用程序相似的使用流程, 还需要在第一 桌面空间 110内生成相应的启动项 (如快捷方式 111 ) 。 因此, 在用户安装 基于浏览器的应用程序时, 除了默认在的第二桌面空间 120内完成安装外, 还可以包括以下步骤:
步骤 303 ,决断是否还安装至其他桌面空间,若结果为是则进行步骤 304, 在上述的其他桌面空间内安装上述的基于浏览器的应用程序, 否则完成安装 过程。
上述的其他桌面空间例如为图 6所示的第一桌面空间 110, 若要在第一 桌面空间 110内进行安装则在第一桌面空间 110内生成第一启动项。
可以理解, 基于浏览器的应用程序本身并不必包括任何直接可执行文件
(如. exe文件) , 而且如前述实施例中所述, 由于部分功能可能依赖于对浏 览器内核进行扩展后的脚本对象, 如果直接在第一桌面空间 110内调用浏览 器程序打开应用程序的页面文件也可能无法直接正常运行。 为解决上述问 题,需要通过一个加载器进行间接启动,此加载程器可以是单独运行的进程, 还可以是嵌入上述的主进程模块。 如此, 第一启动项指向此加载器并附加应 用程序标识作为参数即可。例如,在第一启动项的目标参数内保存以下内容: WebAppLoader.exe /appid=xxx,上述的 WebAppLoader.exe即为上述的主进程 模块。
本实施例的基于浏览器的应用程序的扩展方法中, 通过在不同的桌面空 间内生成指向基于浏览器的应用程序的启动项, 从而可在不同的桌面空间内 方便的启动基于浏览器的应用程序, 使得基于浏览器的应用程序与其他的客 户端程序具有相同地启动过程, 更为方便。
第四实施例
本实施例提供一种基于浏览器的应用程序的扩展方法, 其与图 1所示的 方法相似, 其不同之处在于, 参阅图 7, 步骤 101具体包括以下步骤:
步骤 401 , 第一启动项触发启动请求; 例如, 用户在第一桌面空间 110 双击快捷方式 111 , 则触发应用程序启动请求。
步骤 402, 判断主进程模块是否已经启动; 若主进程模块未启动则进行 步骤 S403: 启动主进程模块; 然后进行步骤 404。 若主进程模块已经启动直 接执行步骤 404。
步骤 404, 主进程模块根据启动请求的来源确定运行方式; 上述的确定 运行方式是指为后续的加载页面文件、 显示应用程序界面等过程设定参数。 本实施例中, 启动请求来自于第一桌面空间, 如上所述, 若显示第二桌面空 间 120,这无疑会与第一桌面空间内的其他应用程序在启动过程中差异太多, 不符用户的使用习惯。 因此, 若启动请求来自于第一启动项则主进程模块可 以后台运行, 且步骤 102内的应用程序界面可以显示于第一桌面空间内, 若 启动请求来自于第二启动项则在第二桌面空间内显示应用程序界面。
此外, 针对不同的桌面空间还可显示不同的界面风格。 若所述启动请求 来自于第一启动项可将应用程序界面调整至与第一桌面空间相匹配的第一 界面风格; 若启动请求来自于第二启动项可将应用程序界面调整至与第二桌 面空间相匹配的第二界面风格。 在上述的第一界面风格中, 例如可将基于浏 览器的应用程序的界面绘制成第二实施例中所述的接近第一桌面空间 110内 其他的客户端应用程序的一般风格, 从而使基于浏览器的应用程序更加接近 于一般的客户端应用程序。 本实施例的方法还包括以下步骤:
步骤 405 , 判断是否已经登陆至服务器。 若未登陆则进行步骤 406, 进 行登陆操作, 否则直接进行步骤 407, 加载页面文件。
可以理解, 在进行登陆操作的过程中, 根据启动请求的来源不同, 运行 方式也有所不同, 例如, 若启动请求来自于第一启动项, 则只应显示登陆界 面, 而不应显示其他的界面, 如图 6所示第二桌面空间 120内的其他界面要 素。
本实施例的基于浏览器的应用程序的扩展方法中, 针对不同来源的启动 请求, 可以采用不同的方式运行基于浏览器的应用程序, 而使其对应的桌面 空间最大程度的匹配, 从而避免破坏用户的使用习惯。
第五实施例
本实施例提供一种基于浏览器的应用程序的扩展方法, 其第四实施例的 方法相似, 其不同之处在于, 参阅图 8 , 还包括以下步骤:
步骤 501 , 记录基于浏览器的应用程序的启动请求的来源。 类似于前述 的实施例中所述, 启动请求例如可来自于第一桌面空间或者第二桌面空间内 的启动项。 而且如上所述, 主进程模块需要同时维护第二桌面空间以及对来 自第一桌面空间的应用程序启动请求进行处理。
步骤 502, 接收所述主进程模块的退出请求。 例如, 用户可以在第二桌 面空间内选择退出第二桌面空间。 此时触发上述的主进程模块的退出请求。
步骤 503 , 关闭所有根据来自第二桌面空间的启动请求运行的基于浏览 器的应用程序。
步骤 504, 判断是否具有根据来自第一桌面空间的启动请求运行的基于 浏览器的应用程序。 若结果为是则执行步骤 S505 , 否则执行步骤 506。
步骤 505 , 将主进程模块转换为后台运行模式, 即, 隐藏第二桌面空间。 步骤 506, 关闭主进程模块。
本实施例的基于浏览器的应用程序的扩展方法中, 针对不同桌面空间内 运行的基于浏览器程序,在关闭时分别做出不同的处理,处理方式更加灵活。
第六实施例
本实施例提供一种基于浏览器的应用程序的扩展装置, 参阅图 9, 其包 括主进程模块 610、 加载模块 620、 浏览器内核 630、 脚本对象处理模块 640 以及界面处理模块 650。
主进程模块 610用于若接收到所述应用程序的启动请求则调用加载模块 620。 主进程模块 610 包括请求接收单元 611、 登陆单元 612以及退出单元 613。 请求接收单元 611 用于接收应用程序的启动请求, 若有需要还可调用 登陆单元 612以及退出单元 613。 登陆单元 612用于: 判断是否已经登陆至 服务器; 若未登陆至服务器则执行登陆操作并在登陆成功后获取服务器返回 的票据信息。 退出单元 613用于若接收到退出请求则判断是否具有根据来自 所述第一桌面空间的启动项运行的基于浏览器的应用程序, 若有则将所述主 进程模块转换为后台运行模式。 除此之外, 主进程模块 610还可维护如图 6 所示的第二桌面空间, 在此不再赘述。
加载模块 620用于加载所述浏览器内核 630,所述脚本对象处理模块 640 嵌入所述浏览器内核 630, 所述启动请求加载页面文件并将加载的页面文件 传递给所述浏览器内核 630; 加载模块 620可以是以独立进行运行, 也可以 是嵌入主进程模块 610内。
参见图 10, 本实施例中, 所述页面文件可为超文本标记语言 HTML文 件, 浏览器内核 630包括:
解析模块 631 ,用于解析 HTML文件,读取 HTML文件指定的层叠样式 表 CSS和脚本 JS, 并根据 JS得到脚本对象;
绘制模块 632, 用于根据解析模块 502a读取的 HTML文件中的标记元 素和 CSS, 绘制客户端的界面。
本实施例中,进一步地,绘制模块 632可以具体用于:根据解析模块 631 读取的 HTML文件中的标记元素和 CSS生成界面的渲染图片。
浏览器内核 630用于解析页面文件, 生成应用程序界面并将其传递给所 述界面处理模块 640; 界面处理模块 650用于显示所述应用程序界面, 并可 接收用户的输入, 并响应用户输入。
脚本对象处理模块 640用于接收来自所述应用程序界面的请求, 根据所 述请求调用服务组件, 并返回调用结果至所述应用程序界面。 上述服务组件 一般是指浏览器内核所不支持的功能, 如直接建立网络通讯连接, 如建立 TCP或 UDP连接的功能、 直接读写文件的功能、 、 创建进程的功能、 访问 媒体文件的功能等等。 换言之, 上述的服务组件包括: 网络服务组件、 存储 服务组件、 进程线程服务组件和媒体服务组件中的至少一种。
本实施例中, 加载模块 620还可以用于: 在加载页面文件之后, 在页面 文件中读取客户端的版本信息, 向服务器查询应用程序是否有最新版本, 如 果是, 则提示用户是否下载应用程序的最新版本, 当用户选择下载时, 从服 务器下载应用程序的最新版本的页面文件。
本实施例中, 所述页面文件为加密的页面文件, 加载模块 620还用于在 加载页面文件之前, 对所述加密的页面文件进行解密。
本实施例的应用程序的扩展装置还可包括安装模块 660, 用于执行安装 操作。 具体地, 可用于在第一桌面空间内生成指向所述应用程序的第一启动 项; 若所述第一启动项被执行则触发所述启动请求; 以及在第二桌面空间内 生成指向所述应用程序的第二启动项; 若所述第二启动项被执行则触发所述 启动请求。安装模块 660还可将应用程序的配置信息和 /或其他程序文件存储 在根据应用程序的 ID命名的文件夹内; 或者, 将应用程序的配置信息和 /或 其他程序文件存储在根据应用程序的 ID定位的共享存储空间内。
主进程模块 610还用于判断所述启动请求的来源。 若启动请求来自于第 一启动项则界面处理模块 650在第一桌面空间中显示应用程序界面; 若启动 请求来自于第二启动项则界面处理模块在第二桌面空间中显示应用程序界 面。
界面处理模块 650还用于: 若启动请求来自于所述第一启动项还包括: 将所述应用程序界面调整至与所述第一桌面空间相匹配的第一界面风格; 以 及若所述启动请求来自于所述第二启动项还包括: 将所述应用程序界面调整 至与所述第二桌面空间相匹配的第二界面风格。 本实施例提供的上述客户端可以执行上述方法实施例中的任一方法, 具 体过程详见方法实施例中的描述, 此处不赘述。
本实施例提供的上述客户端, 通过在客户端进程中加载页面文件和浏览 器内核, 由浏览器内核解析页面文件生成客户端界面及得到脚本对象, 并通 过浏览器内核中的脚本引擎根据脚本对象调用服务组件, 在客户端的界面内 提供相应的服务, 结合了 web技术和浏览器内核实现了客户端的开发, 为快 速搭建客户端提供了一种可靠的方案。
其中, 客户端界面是由浏览器内核解析页面文件后生成的, 与现有技术 相比, 无需在开发包中单独编写界面的开发代码, 使得界面开发的大量工作 通过浏览器内核得到了筒化, 极大地缩短了开发周期。 而且, 浏览器内核基 于页面文件中的元素进行界面绘制,这种使用 web技术的方式不再受不同操 作系统的限制, 让开发人员忽略具体平台的实现细节, 通过筒单的标签标记 来描述界面, 所有元素的实际绘制则由浏览器内核来完成, 极大地减少了工 作量, 且开发人员无需再面对各个操作系统的开发平台和 SDK ( Software Development Kit, 软件开发工具包) , 而是 HTML标准, 开发出的客户端可 以应用于任何操作系统, 无需针对不同的操作系统进行不同的开发, 从而极 大地筒化了开发过程, 降低了开发的难度, 提高了开发效率。
另外, 本实施例提供的上述客户端, 通过脚本对象调用组件来访问操作 系统的资源是完全可控的, 用户可以根据安全级别的需要来设置不同的脚本 对象, 有选择性地调用服务组件, 从而提高操作系统资源访问的安全性, 与 现有技术中调用操作系统的 SDK可以访问操作系统的所有资源相比, 减少 了危险操作的发生, 极大地提高了安全性。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以 通过硬件来完成, 也可以通过程序来指令相关的硬件完成, 所述的程序可以 存储于一种计算机可读存储介质中, 上述提到的存储介质可以是只读存储 器, 磁盘或光盘等。
以上所述仅为本发明的较佳实施例, 并不用以限制本发明, 凡在本发明 的精神和原则之内, 所作的任何修改、 等同替换、 改进等, 均应包含在本发 明的保护范围之内。

Claims

1、 一种基于浏览器的应用程序的扩展方法, 其特征在于, 所述方法包 括:
若接收到所述应用程序的启动请求则加载页面文件, 加载浏览器内核并 将脚本对象嵌入所述浏览器内核, 所述脚本对象用于与所述应用程序的运行 环境内其他服务组件进行交互;
所述浏览器内核解析所述页面文件, 生成并显示相应的应用程序界面; 所述脚本对象接收来自所述应用程序界面的请求, 根据所述请求调用所 述服务组件, 并返回调用结果至所述应用程序界面。
2、 根据权利要求 1 所述的基于浏览器的应用程序的扩展方法, 其特征 在于, 所述页面文件为采用文本标记语言定义所形成的文件。
3、 根据权利要求 1 所述的基于浏览器的应用程序的扩展方法, 其特征 在于, 所述页面文件存储于用户存储空间中, 加载页面文件之后, 还包括: 在所述页面文件中读取所述客户端的版本信息;
向服务器查询所述客户端是否有最新版本;
如果是, 则提示用户是否下载所述应用程序的最新版本, 当用户选择下 载时, 从所述服务器下载所述应用程序的最新版本的页面文件。
4、 根据权利要求 1至 3 中任一项所述的基于浏览器的应用程序的扩展 方法, 其特征在于, 所述页面文件为加密的页面文件, 加载页面文件具体包 括:
对所述加密的页面文件进行解密, 加载解密后的页面文件。
5、 根据权利要求 1至 3 中任一项所述的基于浏览器的应用程序的扩展 方法, 其特征在于, 所述服务组件包括: 网络服务组件、 存储服务组件、 进 程线程服务组件和媒体服务组件中的至少一种。
6、 根据权利要求 1 所述的基于浏览器的应用程序的扩展方法, 其特征 在于, 所述方法还包括:
在第一桌面空间内生成指向所述应用程序的第一启动项; 若所述第一启 动项被执行则触发所述启动请求。
7、 根据权利要求 6所述的基于浏览器的应用程序的扩展方法, 其特征 在于, 所述方法还包括:
在第二桌面空间内生成指向所述应用程序的第二启动项; 若所述第二启 动项被执行则触发所述启动请求;
若接收到所述应用程序的启动请求还包括: 判断所述启动请求的来源; 若所述启动请求来自于所述第一启动项则在所述第一桌面空间中显示 所述应用程序界面; 以及
若所述启动请求来自于所述第二启动项则在所述第二桌面空间中显示 所述应用程序界面。
8、 根据权利要求 7所述的基于浏览器的应用程序的扩展方法, 其特征 在于, 所述方法还包括: 若所述启动请求来自于所述第一启动项还包括: 将 所述应用程序界面调整至与所述第一桌面空间相匹配的第一界面风格。
9、 根据权利要求 7所述的基于浏览器的应用程序的扩展方法, 其特征 在于, 所述方法还包括: 若所述启动请求来自于所述第二启动项还包括: 将 所述应用程序界面调整至与所述第二桌面空间相匹配的第二界面风格。
10、 根据权利要求 6所述的基于浏览器的应用程序的扩展方法, 其特征 在于, 还包括: 将所述应用程序的配置信息存储在根据所述应用程序的 ID命名的文件 夹内;
或者, 将所述应用程序的配置信息存储在根据所述应用程序的 ID定位 的共享存储空间内。
11、 根据权利要求 1所述的基于浏览器的应用程序的扩展方法, 其特征 在于, 若接收到所述应用程序的启动请求还包括: 判断是否已经登陆至服务 器; 若未登陆至服务器则执行登陆操作并在登陆成功后获取服务器返回的票 据信息。
12、 一种基于浏览器的应用程序的扩展装置, 其特征在于, 所述装置包 括:
主进程模块、 加载模块、 浏览器内核、 脚本对象处理模块以及界面处理 模块;
所述主进程模块用于若接收到所述应用程序的启动请求则调用所述加 载模块;
所述加载模块用于加载所述浏览器内核, 将所述脚本对象处理模块嵌入 所述浏览器内核; 根据所述启动请求加载页面文件并将加载的页面文件传递 给所述浏览器内核;
所述浏览器内核用于解析所述页面文件, 生成应用程序界面并将其传递 给所述界面处理模块;
所述界面处理模块用于显示所述应用程序界面;
所述脚本对象处理模块用于接收来自所述应用程序界面的请求, 根据所 述请求调用服务组件, 并返回调用结果至所述应用程序界面。
13、 根据权利要求 12所述的基于浏览器的应用程序的扩展装置, 其特 征在于, 所述页面文件为采用文本标记语言定义所形成的文件。
14、 根据权利要求 12所述的基于浏览器的应用程序的扩展装置, 其特 征在于, 所述页面文件存储于用户存储空间中, 所述加载模块加载页面文件 之后, 还用于:
在所述页面文件中读取所述应用程序的版本信息;
向服务器查询所述应用程序是否有最新版本;
如果是, 则提示用户是否下载所述应用程序的最新版本, 当用户选择下 载时, 从所述服务器下载所述应用程序的最新版本的页面文件。
15、 根据权利要求 12至 14中任一项所述的基于浏览器的应用程序的扩 展装置, 其特征在于, 所述页面文件为加密的页面文件, 加载页面文件具体 包括:
对所述加密的页面文件进行解密, 加载解密后的页面文件。
16、 根据权利要求 12至 14中任一项所述的基于浏览器的应用程序的扩 展装置, 其特征在于, 所述服务组件包括: 网络服务组件、 存储服务组件、 进程线程服务组件和媒体服务组件中的至少一种。
17、 根据权利要求 12所述的基于浏览器的应用程序的扩展装置, 其特 征在于, 所述方法还包括安装模块, 用于:
在第一桌面空间内生成指向所述应用程序的第一启动项; 若所述第一启 动项被执行则触发所述启动请求。
18、 根据权利要求 17所述的基于浏览器的应用程序的扩展装置, 其特 征在于, 所述安装模块还用于: 在第二桌面空间内生成指向所述应用程序的 第二启动项; 若所述第二启动项被执行则触发所述启动请求; 若接收到所述应用程序的启动请求所述主进程模块还用于: 判断所述启 动请求的来源; 若所述启动请求来自于所述第一启动项则所述界面处理模块在所述第 一桌面空间中显示所述应用程序界面; 以及
若所述启动请求来自于所述第二启动项则所述界面处理模块在所述第 二桌面空间中显示所述应用程序界面。
19、 根据权利要求 18所述的基于浏览器的应用程序的扩展装置, 其特 征在于, 所述界面处理模块还用于: 若所述启动请求来自于所述第一启动项 还包括: 将所述应用程序界面调整至与所述第一桌面空间相匹配的第一界面 风格。
20、 根据权利要求 18所述的基于浏览器的应用程序的扩展装置, 其特 征在于, 所述界面处理模块还用于: 若所述启动请求来自于所述第二启动项 还包括: 将所述应用程序界面调整至与所述第二桌面空间相匹配的第二界面 风格。
21、 根据权利要求 12所述的基于浏览器的应用程序的扩展装置, 其特 征在于, 所述主进程模块还包括登陆单元, 用于若接收到所述应用程序的启 动请求则: 判断是否已经登陆至服务器; 若未登陆至服务器则执行登陆操作 并在登陆成功后获取服务器返回的票据信息。
22、 根据权利要求 17所述的基于浏览器的应用程序的扩展装置, 其特 征在于, 安装模块还用于:
将所述应用程序的配置信息存储在根据所述应用程序的 ID命名的文件 夹内;
或者, 将所述应用程序的配置信息存储在根据所述应用程序的 ID定位 的共享存储空间内。
23、 根据权利要求 12所述的基于浏览器的应用程序的扩展装置, 其特 征在于, 所述主进程模块还包括退出单元, 用于若接收到退出请求则判断是 否具有根据来自所述第一桌面空间的启动项运行的基于浏览器的应用程序, 若有则将所述主进程模块转换为后台运行模式。
PCT/CN2012/087032 2011-12-22 2012-12-20 一种基于浏览器的应用程序的扩展方法及装置 WO2013091556A1 (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020137035125A KR20140018414A (ko) 2011-12-22 2012-12-20 브라우저 기반 애플리케이션 프로그램 확장 방법 및 디바이스
US14/129,880 US20140317537A1 (en) 2011-12-22 2012-12-20 Browser based application program extension method and device

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
CN201110434701.2A CN103176775B (zh) 2011-12-22 2011-12-22 一种实现网页应用程序本地化的方法和装置
CN201110434701.2 2011-12-22
CN201110439649.X 2011-12-23
CN201110439649XA CN103179166A (zh) 2011-12-23 2011-12-23 在客户端中提供服务的方法和客户端

Publications (1)

Publication Number Publication Date
WO2013091556A1 true WO2013091556A1 (zh) 2013-06-27

Family

ID=48667713

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2012/087032 WO2013091556A1 (zh) 2011-12-22 2012-12-20 一种基于浏览器的应用程序的扩展方法及装置

Country Status (3)

Country Link
US (1) US20140317537A1 (zh)
KR (1) KR20140018414A (zh)
WO (1) WO2013091556A1 (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140229426A1 (en) * 2013-02-14 2014-08-14 Loupe, Inc. Electronic blueprint system and method
CN104965723A (zh) * 2014-10-09 2015-10-07 腾讯科技(深圳)有限公司 应用程序的运行方法及装置
CN106201457A (zh) * 2016-06-24 2016-12-07 乐视控股(北京)有限公司 一种基于应用场景展示操作界面的方法及装置
CN106547556A (zh) * 2016-11-03 2017-03-29 广东欧珀移动通信有限公司 启动应用程序功能界面的方法和装置
CN113626391A (zh) * 2021-08-27 2021-11-09 四川虹美智能科技有限公司 操作系统缓存文件处理方法

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106547630A (zh) * 2015-09-17 2017-03-29 深圳市祈飞科技有限公司 一种Windows操作系统的服务程序与桌面的通信方法及系统
CN108304246A (zh) * 2016-09-29 2018-07-20 联芯科技有限公司 识别目标文件的方法与设备
CN110633156B (zh) * 2018-06-22 2022-03-25 杭州海康威视系统技术有限公司 浏览器关联应用程序的方法、装置及电子设备、存储介质
CN111984534B (zh) * 2020-08-07 2022-06-14 苏州浪潮智能科技有限公司 一种基于arm64架构前端UI自动化测试方法及装置
CN112579542B (zh) * 2020-12-17 2023-03-21 海信视像科技股份有限公司 一种显示设备及页面绘制方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6662341B1 (en) * 1999-05-20 2003-12-09 Microsoft Corporation Method and apparatus for writing a windows application in HTML
US20110173602A1 (en) * 2008-07-30 2011-07-14 Access Co., Ltd Execution environment software, client device, and server device
CN102207866A (zh) * 2011-05-25 2011-10-05 盛乐信息技术(上海)有限公司 基于WebOS的应用程序开发、发布、安装、运行系统及方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2003239385A1 (en) * 2002-05-10 2003-11-11 Richard R. Reisman Method and apparatus for browsing using multiple coordinated device
US7111245B2 (en) * 2002-12-17 2006-09-19 International Business Machines Corporation System and method for smart graphical components
US7657837B2 (en) * 2005-04-06 2010-02-02 Ericom Software Ltd. Seamless windows functionality to remote desktop sessions regarding z-order
US20070174429A1 (en) * 2006-01-24 2007-07-26 Citrix Systems, Inc. Methods and servers for establishing a connection between a client system and a virtual machine hosting a requested computing environment
US9268466B2 (en) * 2009-12-09 2016-02-23 Citrix Systems, Inc. Methods and systems for updating a dock with a user interface element representative of a remote application
US8964013B2 (en) * 2009-12-31 2015-02-24 Broadcom Corporation Display with elastic light manipulator

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6662341B1 (en) * 1999-05-20 2003-12-09 Microsoft Corporation Method and apparatus for writing a windows application in HTML
US20110173602A1 (en) * 2008-07-30 2011-07-14 Access Co., Ltd Execution environment software, client device, and server device
CN102207866A (zh) * 2011-05-25 2011-10-05 盛乐信息技术(上海)有限公司 基于WebOS的应用程序开发、发布、安装、运行系统及方法

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140229426A1 (en) * 2013-02-14 2014-08-14 Loupe, Inc. Electronic blueprint system and method
US10346560B2 (en) * 2013-02-14 2019-07-09 Plangrid, Inc. Electronic blueprint system and method
CN104965723A (zh) * 2014-10-09 2015-10-07 腾讯科技(深圳)有限公司 应用程序的运行方法及装置
CN104965723B (zh) * 2014-10-09 2019-01-08 腾讯科技(深圳)有限公司 应用程序的运行方法及装置
CN106201457A (zh) * 2016-06-24 2016-12-07 乐视控股(北京)有限公司 一种基于应用场景展示操作界面的方法及装置
CN106547556A (zh) * 2016-11-03 2017-03-29 广东欧珀移动通信有限公司 启动应用程序功能界面的方法和装置
CN106547556B (zh) * 2016-11-03 2020-03-27 Oppo广东移动通信有限公司 启动应用程序功能界面的方法和装置
CN113626391A (zh) * 2021-08-27 2021-11-09 四川虹美智能科技有限公司 操作系统缓存文件处理方法
CN113626391B (zh) * 2021-08-27 2023-04-14 四川虹美智能科技有限公司 操作系统缓存文件处理方法

Also Published As

Publication number Publication date
KR20140018414A (ko) 2014-02-12
US20140317537A1 (en) 2014-10-23

Similar Documents

Publication Publication Date Title
US11829186B2 (en) System and methods for integration of an application runtime environment into a user computing environment
WO2013091556A1 (zh) 一种基于浏览器的应用程序的扩展方法及装置
US6968539B1 (en) Methods and apparatus for a web application processing system
RU2459238C2 (ru) Управляемая среда выполнения для организации взаимодействия между программными приложениями
KR101661784B1 (ko) 웹 브라우저를 통한 애플리케이션으로의 컨텐츠 입력 메소드
WO2017050094A1 (zh) 加载应用程序的方法及装置
US8701104B2 (en) System and method for user agent code patch management
KR101722108B1 (ko) 서드 파티 어플리케이션 스크립터빌리티
US20090183171A1 (en) Secure and Extensible Policy-Driven Application Platform
US20140365861A1 (en) Prefetching binary data for use by a browser plugin
KR20060082353A (ko) 실행가능 웹 컨텐트 제공 및 처리 시스템 및 방법
US9996512B2 (en) Customized processing of DOM objects
US9830307B1 (en) Ahead of time compilation of content pages
KR101437943B1 (ko) 스마트 플랫폼 장치, 시스템 및 제어 방법
CN114281359A (zh) 隐藏应用软件的方法、装置、设备及存储介质

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 12860229

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 14129880

Country of ref document: US

ENP Entry into the national phase

Ref document number: 20137035125

Country of ref document: KR

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

32PN Ep: public notification in the ep bulletin as address of the adressee cannot be established

Free format text: NOTING OF LOSS OF RIGHTS PURSUANT TO RULE 112(1) EPC (EPO FORM 1205 DATED 19/11/2014)

122 Ep: pct application non-entry in european phase

Ref document number: 12860229

Country of ref document: EP

Kind code of ref document: A1