CN107451162A - 网络资源访问设备、混合设备及方法 - Google Patents
网络资源访问设备、混合设备及方法 Download PDFInfo
- Publication number
- CN107451162A CN107451162A CN201610383985.XA CN201610383985A CN107451162A CN 107451162 A CN107451162 A CN 107451162A CN 201610383985 A CN201610383985 A CN 201610383985A CN 107451162 A CN107451162 A CN 107451162A
- Authority
- CN
- China
- Prior art keywords
- network resource
- primary
- business function
- operating system
- script
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/955—Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
- G06F16/9566—URL specific, e.g. using aliases, detecting broken or misspelled links
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/957—Browsing optimisation, e.g. caching or content distillation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/70—Admission control; Resource allocation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/957—Browsing optimisation, e.g. caching or content distillation
- G06F16/9577—Optimising the visualization of content, e.g. distillation of HTML documents
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/541—Interprogram communication via adapters, e.g. between incompatible applications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Human Computer Interaction (AREA)
- Stored Programmes (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种网络资源访问设备、混合设备及方法。网络资源访问设备包括:原生API单元,用于提供具有访问操作系统的功能的原生API;脚本解析单元,用于解析所获取的用指定的脚本语言编写的业务功能脚本以获取业务功能的内容;页面渲染单元,用于根据业务功能的内容,调用原生API单元提供的原生API,渲染生成由若干个原生UI组件组成的交互页面。根据本发明,可以降低开发业务功能的时间和人力成本。
Description
技术领域
本发明涉及互联网技术领域,更具体地,涉及一种网络资源访问设备、混合设备及方法。
背景技术
时下互联网已经成为人们生活不可或缺的部分。浏览器作为可以显示网页服务器或者文件系统的HTML(Hyper Text Markup Language,超级文本标记语言)文件内容并提供用户与文件交互的软件,是人们访问互联网的一个重要工具。浏览引擎作为浏览器的内核,其重要性不言而喻。时下的浏览引擎大多基于HTML技术实现,随着HTML技术近几年的发展日趋成熟,基于HTML技术的浏览引擎,页面展现效果越来越好,开发的人力和时间成本也逐步降低。但是HTML技术应用于移动设备(手机、平板电脑等)上,由于移动设备的性能参差不齐,HTML页面的整体性能都表现不佳。因而,浏览引擎开发者们开始转而使用移动设备的操作系统的原生开发语言(如Android操作系统的Java,或iOS操作系统的Obj C和Swift)来实现浏览引擎。
但是,发明人发现,虽然采用移动设备的操作系统的原生开发语言(Native语言)开发浏览引擎,可以得到由操作系统提供的原生UI组件(UI,User Interface,用户界面)组成的交互页面,操作效果流畅,页面整体性能好,可以得到谐美的用户体验,但是,使用原生开发语言来开发浏览引擎的业务功能,需要的人力和时间成本都比较高,并且,当采用原生开发语言开发某个业务功能的代码出现问题时,只能采取通过升级浏览引擎的方式来解决,这样的方法效率很低,对用户影响很大。
因此,发明人认为,有必要针对上述现有技术中存在的问题,进行改进。
发明内容
本发明的一个目的是提供一种用于实现网络资源访问设备的新技术方案。
根据本发明的第一方面,提供了一种网络资源访问设备,该设备基于指定的操作系统实现,包括:
原生API单元,用于提供具有访问所述操作系统的功能的原生API,所述访问所述操作系统的功能至少包括访问操作系统的原生UI组件的功能,所述原生API使用所述操作系统的原生开发语言实现;
脚本解析单元,用于解析所获取的用指定的脚本语言编写的业务功能脚本,以获取所述业务功能脚本描述的业务功能的内容;
页面渲染单元,用于根据所述业务功能的内容,调用所述原生API单元提供的所述原生API,渲染生成由若干个原生UI组件组成的交互页面。
在一个实施例中,所述网络资源访问设备,还包括:
脚本获取单元,用于根据所接收的网络资源访问请求,获取对应的业务功能脚本。
在另一个实施例中,所述网络资源访问请求中包含URL,所述脚本获取单元包括:
用于根据所接收的URL获取所请求的网络资源的位置的装置;以及
用于从所述网络资源的位置获取对应的业务功能脚本的装置。
在再一个实施例中,所述网络资源访问设备,还包括:
响应于用户在所述交互页面上的操作将与操作内容对应的参数写入与所述交互页面对应的所述业务功能脚本的装置。
可选地,所述访问所述操作系统的功能还包括,访问操作系统的传感器组件的功能和/或访问文件的功能。
可选地,所述指定的操作系统为Android操作系统且所述操作系统的原生开发语言为Java,或者所述指定的操作系统为iOS操作系统且所述操作系统的原生开发语言为Objective C/C++或Swift。
又可选地,所述指定的脚本语言为JavaScript。
根据本发明的第二方面,提供了一种网络资源的访问方法,该方法实施于指定的操作系统,包括以下步骤:
解析所获取的业务功能脚本,获取所述业务功能脚本描述的业务功能的内容;
根据所述业务功能的内容,调用具有访问所述操作系统的功能的原生API,渲染生成与所述业务功能脚本对应的由若干个原生UI组件组成的交互页面,其中,所述访问所述操作系统的功能至少包括访问操作系统的原生UI组件的功能,所述原生API使用所述操作系统的原生开发语言实现。
在一个实施例中,所述网络资源访问方法,还包括:
根据所接收的网络资源访问请求,获取对应的使用指定脚本语言编写的业务功能脚本。
在一个实施例中,所述网络资源访问请求中包含URL,所述根据所接收的网络资源访问请求,获取对应的指定脚本语言编写的业务功能脚本步骤,包括:
根据所接收的URL,获取请求访问的网络资源的位置;
从所述网络资源的位置,获取对应的业务功能脚本。
在另一个实施例中,所述网络资源访问方法,还包括:
响应于用户在所述交互页面上的操作,将与操作内容对应的参数写入与所述交互页面对应的所述业务功能脚本;
解析写入所述参数的所述业务功能脚本,并且根据解析获取的对应的写入所述参数的业务功能的内容,调用具有访问所述操作系统的功能的原生API,渲染生成对应的响应用户操作的交互页面。
可选地,所述访问所述操作系统的功能还包括,访问操作系统的传感器组件的功能和/或访问文件的功能。
可选地,所述指定的操作系统为Android操作系统且所述操作系统的原生开发语言为Java,或者所述指定的操作系统为iOS操作系统且所述操作系统的原生开发语言为Objective C/C++或Swift。
又可选地,所述指定的脚本语言为JavaScript。
根据本发明的第三方面,提供一种混合设备,用于访问网络资源,该混合设备基于指定的操作系统实现,并包括:
根据本发明的第一发明提供的任意一项的网络资源访问设备,包括原生API单元、脚本解析单元以及页面渲染单元,用于根据所接收的使用指定的脚本语言编写的业务功能脚本,调用原生API生成对应的由指定的操作系统的若干个原生UI组件组成的交互页面;
HTML浏览引擎,用于根据所接收的网页文档数据生成对应的网页页面,包括用于通过JavaScript解析所述网页文档数据的JS引擎,以及用于生成与所述网页文档数据对应的网页的排版引擎;
设备选择单元,用于根据接收的网络资源访问请求,从所述网络资源访问设备以及所述HTML浏览引擎中,选择对应的目标设备;
设备框架单元,用于根据接收的网络资源访问请求,获取对应的目标文件,并调用所述目标设备,生成与所述目标文件对应的目标页面,展现于当前的窗口内,其中,
若目标设备为所述网络资源访问设备,所述目标文件为与所述网络资源访问请求对应的所述业务功能脚本,并且所述目标页面为所述业务功能脚本对应的所述交互页面,
若目标设备为所述HTML浏览引擎,所述目标文件为与所述网络资源访问请求对应的所述网页文档数据,并且所述目标页面为所述网页文档数据对应的所述网页页面。
在一个实施例中,所述网络资源访问请求包含URL,所述设备框架单元还用于:
根据所接收的URL,获取所请求访问的网络资源的位置;
从所述网络资源的位置,获取对应的目标文件。
在另一个实施例中,所述网络资源访问请求中包含用于指示目标设备的引擎类型指示。
可选地,所述HTML浏览引擎为Chromium或者Webkit。
在再一个实施例中,所述指定的脚本语言为JavaScript时,所述网络资源访问设备的脚本解析单元复用所述HTML浏览引擎的JS引擎。
根据本发明的第四方面,提供一种网络资源访问方法,该方法实施于指定的操作系统,包括如下步骤:
根据所获取的网络资源访问请求,从网络资源访问设备以及HTML浏览引擎中,选择对应的目标设备,其中,
所述网络资源访问设备为本发明的第一方面提供的任意一项网络资源访问设备,包括原生API单元、脚本解析单元以及页面渲染单元,用于根据所接收的使用指定的脚本语言编写的业务功能脚本,调用原生API生成对应的由指定的操作系统的若干个原生UI组件组成的交互页面,
所述HTML浏览引擎,用于根据所接收的网页文档数据生成对应的网页页面,包括用于通过JavaScript解析所述网页文档数据的JS引擎,以及用于生成与所述网页文档数据对应的网页的排版引擎;
根据所接收的网络资源访问请求,获取对应的目标文件,调用所述目标设备,生成与所述目标文件对应的目标页面,展现于当前窗口内,其中,
若所述目标文件为与所述网络资源访问请求对应的所述业务功能脚本,目标设备为所述网络资源访问设备,所述目标页面为根据本发明第二方面提供的任意一项网络资源访问方法获取的与所述业务功能脚本对应的所述交互页面,
若所述目标文件为与所述网络资源访问请求对应的所述网页文档数据,目标设备为所述HTML浏览引擎,所述目标页面为与所述网页文档数据对应的所述网页页面。
在一个实施例中,所述网络资源访问请求包含URL,所述根据所接收的网络资源访问请求,获取目标设备的目标文件的步骤,包括:
根据所接收的URL,获取所请求访问的网络资源的位置;
从所述网络资源的位置,获取对应的目标文件。
在另一个实施例中,所述网络资源访问请求中包含用于指示目标设备的引擎类型指示。
可选地,所述HTML浏览引擎为Chromium或者Webkit。
可选地,所述指定的脚本语言为JavaScript时,所述网络资源访问设备的脚本解析单元复用所述HTML浏览引擎的JS引擎。
根据本发明的第五方面,包括存储器和处理器,其中,所述存储器用于存储指令,所述指令用于控制所述处理器进行操作以执行本发明的第二方面提供的任意一项的网络资源访问方法。
根据本发明的第六方面,包括存储器和处理器,其中,所述存储器用于存储指令,所述指令用于控制所述处理器进行操作以执行本发明的第四方面提供的任意一项的网络资源访问方法。
本发明的发明人发现,在现有技术中,尚未提出一种网络资源访问设备、方法,可以降低开发业务功能的人力和时间成本、提供用户流畅的操作体验,并且高效率地升级。此外,也尚未提供一种混合设备、基于混合设备的网络资源访问方法,可以融合本发明提供的网络资源访问设备以及现有技术的HTML引擎,提供连续谐美的用户体验。因此,本发明所要实现的技术任务或者所要解决的技术问题是本领域技术人员从未想到的或者没有预期到的,故本发明是一种新的技术方案。
通过以下参照附图对本发明的示例性实施例的详细描述,本发明的其它特征及其优点将会变得清楚。
附图说明
被结合在说明书中并构成说明书的一部分的附图示出了本发明的实施例,并且连同其说明一起用于解释本发明的原理。
图1是显示可用于实现本发明的实施例的计算系统的硬件配置的例子的框图。
图2示出了本发明的实施例的网络资源访问设备的示意性框图。
图3示出了本发明的实施例的网络资源访问方法的一个流程图。
图4示出了本发明的实施例的混合设备的示意性框图。
图5示出了本发明的实施例的网络资源访问方法的又一个流程图。
具体实施方式
现在将参照附图来详细描述本发明的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本发明的范围。
以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。
在这里示出和讨论的所有例子中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它例子可以具有不同的值。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
<硬件配置>
图1是示出可以实现本发明的实施例的计算机系统1000的硬件配置的框图。
如图1所示,计算机系统1000包括计算机1110。计算机1110包括经由系统总线1121连接的处理单元1120、系统存储器1130、固定非易失性存储器接口1140、移动非易失性存储器接口1150、用户输入接口1160、网络接口1170、视频接口1190和输出外围接口1195。
系统存储器1130包括ROM(只读存储器)和RAM(随机存取存储器)。BiOS(基本输入输出系统)驻留在ROM内。操作系统、应用程序、其它程序模块和某些程序数据驻留在RAM内。
诸如硬盘的固定非易失性存储器连接到固定非易失性存储器接口1140。固定非易失性存储器例如可以存储操作系统、应用程序、其它程序模块和某些程序数据。
诸如软盘驱动器和CD-ROM驱动器的移动非易失性存储器连接到移动非易失性存储器接口1150。例如,软盘可以被插入到软盘驱动器中,以及CD(光盘)可以被插入到CD-ROM驱动器内。
诸如鼠标和键盘的输入设备被连接到用户输入接口1160。
计算机1110可以通过网络接口1170连接到远程计算机1180。例如,网络接口1170可以通过局域网连接到远程计算机。或者,网络接口1170可以连接到调制解调器(调制器-解调器),以及调制解调器经由广域网连接到远程计算机1180。
远程计算机1180可以包括诸如硬盘的存储器,其可以存储远程应用程序。
视频接口1190连接到监视器。
输出外围接口1195连接到打印机和扬声器。
图1所示的计算机系统仅仅是说明性的并且决不意味着对本发明、其应用或使用的任何限制。
<第一实施例>
本发明的第一实施例提供一种网络资源访问设备2000,该设备2000基于指定的操作系统实现。操作系统(Operating System,简称OS)是管理和控制计算机硬件与软件资源的计算机程序,是直接运行在“裸机”上的最基本的系统软件,任何其他软件都必须在操作系统的支持下才能运行。网络资源访问设备2000也不例外。本实施例中指定的操作系统,可以是Windows操作系统,也可以是Android操作系统,或者是iOS操作系统等,只要能管理和控制应用本实施例的网络资源访问设备的计算机的硬件与软件资源,支持本实施例中的网络资源访问设备运行的操作系统均可以成为本实施例中指定的操作系统,在此不一一列举。
本发明的实施例提供一种网络资源访问设备2000,如图2所示,包括原生API单元2100、脚本解析单元2200以及页面渲染单元2300。可选地,还包括脚本获取单元2400。
原生API单元2100,用于提供具有访问所述操作系统的功能的原生API,所述访问所述操作系统的功能至少包括访问操作系统的原生UI组件的功能,所述原生API使用所述操作系统的原生开发语言实现。
API(Application Programming Interface,应用程序编程接口)是一些预先定义的函数或预定义函数的集合,目的是提供应用程序以便于第三方开发者基于某软件或硬件实现业务功能,使得第三方开发者无需访问该软件的源码或理解该软件或硬件内部工作机制的细节,就能通过调用API基于该软件或硬件得以实现访问一组例程的能力。
在本实施例中,原生API是使用所述操作系统的原生开发语言实现的API。采用操作系统的原生开发语言实现原生API,可以使得原生API被调用来实现各种业务功能时,对涉及的操作系统的硬件功能可以直接访问,提升运行效率,得到流畅的操作体验。在一个例子中,所述指定的操作系统为Android操作系统且所述操作系统的原生开发语言为Java,或者所述指定的操作系统为iOS操作系统且所述操作系统的原生开发语言为Objective C/C++或Swift。
在本实施例中,原生API是具有访问所述操作系统的功能的API,换言之,是具有访问所述操作系统的功能的一些预定义函数的集合。其中,所述访问所述操作系统的功能至少包括访问操作系统的原生UI组件的功能。例如,原生API中包含一个可用于实现显示字符串的预定义函数,具有访问实现显示字符串涉及的操作系统的原生UI组件的功能。对于指定的操作系统为Android操作系统,使用原生开发语言Java实现该预定义函数,该预定义函数可以访问Android操作系统的TextView这个原生UI组件,渲染显示字符串。对于指定的操作系统为在iOS操作系统,使用原生开发语言Objective C实现该预定义函数,该预定义函数可以访问iOS操作系统的UITextView这个原生UI组件,渲染显示字符串。
在一个例子中,所述访问所述操作系统的功能还包括,访问操作系统的传感器组件的功能和/或访问文件的功能。
例如,原生API中还具有访问操作系统的传感器组件的功能,比如,原生API中包含一个具有访问操作系统的重力传感器的功能的预定义函数。对于指定的操作系统为Android操作系统,使用原生开发语言Java实现该预定义函数,该预定义函数通过Android操作系统的系统接口((SensorManager)getSystemService(SENSOR_SERVICE)).getDefaultSens or(Sensor.TYPE_GRAVITY)访问重力传感器并注册Android操作的传感器监听器,可以实时获取重力传感器的数据变化并在作为原生API被调用时输出。对于指定的操作系统为在iOS操作系统,使用原生开发语言Objective C实现该预定义函数,该预定义函数用于访问iOS操作系统的UIAccelerometer这个原生UI组件以获取重力加速度传感器并注册iOS操作系统的传感器监听器,可以实时获取重力传感器的数据变化并在作为原生API被调用时输出。
又例如,原生API中还具有访问文件的功能,比如,原生API中包含一个可以用于写入文件的预定义函数,具有访问文件的系统功能。对于指定的操作系统为Android操作系统,使用原生开发语言Java实现该预定义函数,该预定义函数具有指向指定文件地址写入数据的功能。对于指定的操作系统为在iOS操作系统,使用原生开发语言Objective C实现该预定义函数,该预定义函数具有指向指定文件地址写入数据的功能。
脚本解析单元2200,用于解析所获取的用指定的脚本语言编写的业务功能脚本,以获取所述业务功能脚本描述的业务功能的内容。
所述业务功能是第三方开发者基于网络资源访问设备2000开发实现的具体应用业务涉及的功能,例如显示文字、播放视频等等,在本实施例中不做限制。对一个业务功能的开发,第三方开发者使用指定的脚本语言编写描述业务功能的内容的脚本,可以无需了解网络资源访问设备2000的工作原理或者访问网络资源访问设备2000的源代码,对第三方开发者是较为简单的开发方式,人力和时间成本较低。此外,在业务功能实现错误或应用升级时,只需要更新业务功能的脚本,无需对网络资源访问设备进行修改升级,效率较高,对用户影响很小。
在一个例子中,所述指定的脚本语言为JavaScript。
例如,业务功能脚本为{"type":"text","style":{"fontSize":100},"attr":{"value":"Hello World."}},通过脚本解析单元2200,可以解析得到所述业务功能脚本描述的业务功能的内容为:用100的字体大小显示Hello World这样的字符串。
又例如,业务功能脚本为{"type":"writeFile","attr":{"data":"data towrite","path":"/file/path/to/write"}},通过脚本解析单元2200,可以解析得到所述业务功能脚本描述的业务功能的内容为:在路径/file/path/to/write写入数据"data towrite"。
再例如,业务功能脚本为{"type":"GravityListener","listener":function(gravity){alert(gravity);}},通过脚本解析单元2200,可以解析得到所述业务功能脚本描述的业务功能的内容为:获取重力传感器并注册监重力传感器的数据变化。
在另一个例子中,脚本解析单元2200还可以用于,在解析所述业务脚本功能之后,实现指定的脚本语言的基本功能。例如相加、相减等基本运算功能。
页面渲染单元2300,用于根据所述业务功能的内容,调用所述原生API单元提供的所述原生API,渲染生成由若干个原生UI组件组成的交互页面。
例如,业务功能的内容为:用100的字体大小显示Hello World这样的字符串。以指定的操作系统为Android操作系统为例,页面渲染单元2300调用原生API单元2200中使用原生开发语言Java实现的原生API,通过该原生API中具有访问Android操作系统的TextView这个原生UI组件的功能的预定义函数,渲染显示字符串Hello World。又以指定的操作系统为在iOS操作系统为例,页面渲染单元2300调用使用原生开发语言Objective C实现的原生API,通过该原生API中的具有访问iOS操作系统的UITextView这个原生UI组件的功能的预定义函数,渲染显示字符串Hello World。
又例如,业务功能的内容为:在路径/file/path/to/write写入数据"data towrite"。以指定的操作系统为Android操作系统为例,页面渲染单元2300调用原生API单元2200中使用原生开发语言Java实现的原生API,通过该原生API中具有指向指定文件地址写入数据的功能的预定义函数,在路径/file/path/to/write创建一个文件写入数据"datato write"。又以指定的操作系统为在iOS操作系统为例,页面渲染单元2300调用使用原生开发语言Objective C实现的原生API,通过该原生API中的具有指向指定文件地址写入数据的功能的预定义函数,在路径/file/path/to/write创建一个文件写入数据"data towrite"。
再例如,业务功能的内容为:获取重力传感器并注册监重力传感器的数据变化。以指定的操作系统为Android操作系统为例,页面渲染单元2300调用原生API单元2200中使用原生开发语言Java实现的原生API,通过该原生API中具有通过Android操作系统的系统接口((SensorManager)getSystemService(SENSOR_SERVICE)).getDefaultSens or(Sensor.TYPE_GRAVITY)访问重力传感器并注册Android操作的传感器监听器功能的预定义函数,实时获取重力传感器的数据变化并输出。又以指定的操作系统为在iOS操作系统为例,页面渲染单元2300调用使用原生开发语言Objective C实现的原生API,通过该原生API中的具有访问iOS操作系统的UIAccelerometer这个原生UI组件的功能以及注册iOS操作系统的传感器监听器的功能的预定义函数,实时获取重力传感器的数据变化并输出。
本实施例中,所述交互页面由若干个原生UI(User Interface,用户界面)组件组成。原生UI组件是操作系统自带的用户界面组件,包含例如用于显示文字的原生文字组件、用于显示视频的原生视频视图组件、用于显示图片的原生图片组件等等。所述交互页面的网页元素(文字、图片、音频、动画、视频等)由系统的原生UI组件表示。例如,网页元素为文字时,在交互页面中由原生文字组件表示。又例如,网页元素为图片时,在交互页面中由原生图片组件表示。由若干个原生UI组件组成的交互页面,操作效果流畅,页面整体性能好,可以得到谐美的用户体验。
在另一个例子中,网络资源访问设备2000还包括:响应于用户在所述交互页面上的操作将与操作内容对应的参数写入与所述交互页面对应的所述业务功能脚本的装置。通过将用户在所述交互页面上的操作,将操作内容对应的参数写入交互页面对应的业务功能脚本,可以通过网络资源访问设备2000的脚本解析单元2200重新解析写入参数的业务功能脚本,获取业务功能的内容,通过页面渲染单元2300调用原生API单元2100提供的原生API,重新渲染生成响应于用户操作的交互页面。例如,以用户在交互页面上输入框中输入“Hello World”这个操作为例,通过本例中的装置将Hello World写入对应的业务功能脚本,脚本解析单元2200重新解析该业务功能脚本,获取业务功能的内容为显示“HelloWorld”这个字符串,将调用原生API单元2100,渲染生成有原生UI组件显示“Hello World”这个字符串的交互页面。
在又一个例子中,网络资源访问设备2000还包括脚本获取单元2400。脚本获取单元2400,用于根据所接收的网络资源访问请求,获取对应的业务功能脚本。网络资源访问请求,通常包含访问的网络资源的网址或位置,例如,所述网络资源访问请求中包含URL,所述脚本获取单元2400包括:用于根据所接收的URL获取所请求的网络资源的位置的装置;以及用于从所述网络资源的位置获取对应的业务功能脚本的装置。
URL(Uniform Resource Locator,统一资源定位符)是对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址。互联网上的每个文件(资源)都有一个唯一的URL。例如,URL为“file://a/b/c.js?weex=”,获取所请求的网络资源的位置位于本地,从本地的具体位置下载对应的业务功能脚本。又例如,URL为“http://a/b/c.js?weex=”,获取所请求的网络资源的位置位于http服务器,从http服务器下载对应的业务功能脚本。
本实施例中的网络资源访问设备2000,可以存在多种具体的实施方式,例如,作为浏览器的功能模块,用于提供类似浏览器的内核或浏览引擎的功能以实现网络资源的访问,又例如,作为某个应用程序(例如类似微信这样的互联网信息交互平台)的功能模块,提供访问网络资源的功能,或者以外置的插件或模块的实施方式,被可与其交互的应用程序调用以提供访问网络资源的功能。此外,本实施例中的网络资源访问设备2000,也可能存在多种产品形式,可以是被包含在浏览器或者某个应用程序中,以完整的浏览器或应用程序的完整的产品形式呈现,也可以以插件、外设程序包等独立的产品形式呈现。本实施例中,不限制网络资源访问设备2000的具体实施方式以及产品形式,只要在应用场景下实现本实施例中提供的网络资源访问设备的功能的设备,或是本领域技术人员基于本实施例中提供的网络资源访问设备的功能,出于对所述非技术性因素的考虑直接设计出期望的产品,均在本实施例的保护范围。
本实施例中还提供一种网络资源访问方法,该方法可通过本实施例提供的网络资源访问设备2000实施。在此不再赘述。
本实施例提供的一种网络资源的访问方法,如图3所示,该方法实施于指定的操作系统,包括以下步骤:
步骤S3100,解析所获取的业务功能脚本,获取所述业务功能脚本描述的业务功能的内容。
在一个例子中,所述指定的脚本语言为JavaScript。
在另一个例子中,所述网络资源的访问方法,还包括:
根据所接收的网络资源访问请求,获取对应的使用指定脚本语言编写的业务功能脚本。
在再一个例子中,所述网络资源访问请求中包含URL,所述根据所接收的网络资源访问请求,获取对应的指定脚本语言编写的业务功能脚本步骤,包括:根据所接收的URL,获取请求访问的网络资源的位置;从所述网络资源的位置,获取对应的业务功能脚本。
在步骤S3100之后,进入步骤S3200,根据所述业务功能的内容,调用具有访问所述操作系统的功能的原生API,渲染生成与所述业务功能脚本对应的由若干个原生UI组件组成的交互页面,其中,所述访问所述操作系统的功能至少包括访问操作系统的原生UI组件的功能,所述原生API使用所述操作系统的原生开发语言实现。
在一个例子中,所述访问所述操作系统的功能还包括,访问操作系统的传感器组件的功能和/或访问文件的功能。
在又一个例子中,所述指定的操作系统为Android操作系统且所述操作系统的原生开发语言为Java,或者所述指定的操作系统为iOS操作系统且所述操作系统的原生开发语言为Objective C/C++或Swift。
在又一个例子中,所述网络资源的访问方法还包括:
响应于用户在所述交互页面上的操作,将与操作内容对应的参数写入与所述交互页面对应的所述业务功能脚本;
解析写入所述参数的所述业务功能脚本,并且根据解析获取的对应的写入所述参数的业务功能的内容,调用具有访问所述操作系统的功能的原生API,渲染生成对应的响应用户操作的交互页面。
本发明实施例中还提供一种可编程设备,包括存储器和处理器,其中,所述存储器用于存储指令,所述指令用于控制所述处理器进行操作以执行本发明实施例提供的任意一项的网络资源访问方法。
以上已经结合附图描述了本发明的第一实施例,根据本实施例,提供一种网络资源访问设备及方法。通过解析用指定脚本语言编写的业务功能脚本得到待实现的业务功能的内容,调用对应的使用原生开发语言实现的具有访问操作系统功能的API,渲染生成由操作系统的若干个原生UI组件组成的交互页面。可以使得第三方开发人员开发业务功能时,无需了解浏览引擎内部的实现或者访问浏览引擎的源码,降低时间和人力成本。并且,可以通过原生API直接访问操作系统的原生UI组件以及其他系统组件,得到由原生UI组件组成的交互页面,运行效率较高,使得用户得到流畅的操作体验。用户体验谐美。此外,在业务功能出错或者升级时,只需更新业务功能脚本,无需升级整个浏览引擎,效率较高。对用户影响较小。
<第二实施例>
在某些应用场景下,存在多个网络资源访问请求,其中,部分网络资源访问请求需要通过本发明第一实施例中提供网络资源访问设备访问网络资源,部分网络资源请求需要通过现有技术中的HTML浏览引擎访问网络资源,例如,用户点开一个需要通过HTML浏览引擎访问的网页页面后,又点开该网页页面中的一个链接,通过网络资源访问设备对该链接进行访问。而网络资源访问设备与HTML浏览引擎分别独立实现,则网络资源访问设备生成的由操作系统的原生UI组件组成的交互页面使用一个窗口显示,HTML浏览引擎生成的网页页面需使用另外一个窗口显示,会造成用户的用户体验不连续。并且,当HTML网页页面与原生UI组件组成的交互页面之间相互跳转时,会从一个窗口跳转到另外一个窗口,造成用户体验不谐美。
本发明的第二实施例,总体构思是提供一种混合设备。将本发明第一实施例提供的网络资源访问设备与现有技术中的HTML浏览引擎融合一体,使得网络资源访问设备生成的原生UI组件组成的交互页面与HTML浏览引擎生成的网页页面可以在同一个窗口展示。在用户访问的HTML浏览引擎生成的网页页面中,若存在通过网络资源访问设备访问的网络资源,用户点击进行访问后,在当前展示HTML网页页面的窗口,会展现对应的原生UI组件组成的交互页面,而无需新开一个窗口。同理,在用户访问的原生UI组件组成的交互页面中,若存在通过HTML浏览引擎访问的网络资源,用户点击进行访问后,在当前展示原生UI组件组成的交互页面的窗口,会展现对应HTML网页页面,无需新开一个窗口。此外,用户可以也可以通过前进后退的操作在相同的窗口中浏览原生UI组件组成的交互页面和HTML网页页面。提供给用户连续谐美的用户体验。
本发明的第二实施例提供的混合设备4000,该设备基于指定的操作系统实现,如图4所示,包括:本发明第一实施例提供的任意一项的网络资源访问设备2000、HTML浏览引擎4100、设备选择单元4200以及设备框架单元4300。其中,操作系统(Operating System,简称OS)是管理和控制计算机硬件与软件资源的计算机程序,是直接运行在“裸机”上的最基本的系统软件,任何其他软件都必须在操作系统的支持下才能运行。浏览引擎也不例外。本实施例中指定的操作系统,可以是Windows操作系统,也可以是Android操作系统,或者是iOS操作系统等,只要能管理和控制应用本实施例的网络资源访问设备的计算机的硬件与软件资源,支持本实施例中的混合设备运行的操作系统均可以成为本实施例中指定的操作系统,不一一列举。
网络资源访问设备2000,包括原生API单元2100、脚本解析单元2200以及页面渲染单元2300,用于根据所接收的使用指定的脚本语言编写的业务功能脚本,调用原生API生成对应的由指定的操作系统的若干个原生UI组件组成的交互页面。具体见本发明第一实施例中描述,在此不再赘述。
HTML浏览引擎4100,用于根据所接收的网页文档数据生成对应的网页页面,包括用于通过JavaScript解析所述网页文档数据的JS引擎,以及用于生成与所述网页文档数据对应的网页的排版引擎。
优选地,所述HTML浏览引擎为Chromium或者Webkit。
Chromium是一个由Google公司主导开发的HTML浏览引擎。设计思想基于简单、高速、稳定、安全等理念,在架构上使用了Apple发展出来的WebKit排版引擎、Safari的部份源代码与Firefox的成果,并采用Google独家开发出的V8引擎(JS引擎)以提升解译JavaScript的效率,而且设计了“沙盒”、“黑名单”、“无痕浏览”等功能来实现稳定与安全的网页浏览环境。
WebKit是是苹果公司开发的开源的HTML浏览引擎。WebKit所包含的WebCore排版引擎和JSCore引擎(JS引擎)来自于KDE的KHTML和KJS,拥有清晰的源码结构、极快的渲染速度。优势在于高效稳定,兼容性好,且源码结构清晰,易于维护。
设备选择单元4200,用于根据接收的网络资源访问请求,从所述网络资源访问设备以及所述HTML浏览引擎中,选择对应的目标设备。
在通过设备选择单元4200,针对每个网络资源访问请求,选择将网络资源访问设备还是HTML浏览引擎作为目标设备,访问所请求的访问资源。使得网络资源访问设备和HTML浏览引擎可以根据网络资源访问请求自适应的被选用。在混合设备中融合为一体。
在一个例子中,可以通过设备选择单元4200,解析该网络资源访问请求中包含的网络资源的相关信息,向网络服务器发送Http请求询问访问请求的网络资源适用的目标设备。在另一个例子中,所述网络资源访问请求中包含用于指示目标设备的类型指示。例如,网络资源访问请求中包含URL,URL中包含用于指示目标设备的类型指示。具体地,可以在URL的后缀上加上引擎类型指示,比如,目标设备为网络资源访问设备,引擎类型指示为nu,目标设备为HTML浏览引擎,引擎类型指示为html。设备选择单元4200根据类型指示,选择对应的目标设备。
设备框架单元4300,用于根据接收的网络资源访问请求,获取对应的目标文件,并调用所述目标设备,生成与所述目标文件对应的目标页面,展现于当前的窗口内,其中,
若目标设备为所述网络资源访问设备,所述目标文件为与所述网络资源访问请求对应的所述业务功能脚本,并且所述目标页面为所述业务功能脚本对应的所述交互页面,
若目标设备为所述HTML浏览引擎,所述目标文件为与所述网络资源访问请求对应的所述网页文档数据,并且所述目标页面为所述网页文档数据对应的所述网页页面。
在一个例子中,所述网络资源访问请求包含URL,所述设备框架单元4300还用于:根据所接收的URL,获取所请求访问的网络资源的位置;从所述网络资源的位置,获取对应的目标文件。
URL(Uniform Resource Locator,统一资源定位符)是对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址。互联网上的每个文件(资源)都有一个唯一的URL。
例如,URL为“file://a/b/c.js?weex=”,获取所请求的网络资源的位置位于本地,从本地的具体位置下载对应的目标文件。在一个例子中,URL中还携带用于指示目标设备的类型指示(nu为网络资源访问设备,HTML为HTML浏览引擎)。例如,URL为“file://a/b/c.js?weex=nu”,则从本地的具体位置下载的目标文件为业务功能脚本,而URL为“file://a/b/c.js?weex=html”,则从本地的具体位置下载的目标文件为网页文档数据。又例如,URL为“http://a/b/c.js?weex=”,获取所请求的网络资源的位置位于http服务器,从http服务器下载对应的目标文件。在一个例子中,URL中还携带用于指示目标设备的类型指示(nu为网络资源访问设备,HTML为HTML浏览引擎)。例如,URL为“http://a/b/c.js?weex=nu”,则从http服务器下载的目标文件为业务功能脚本,而URL为“http://a/b/c.js?weex=html”,则从http服务器下载的目标文件为网页文档数据。
通过设备框架单元4300,可以针对每个网络资源访问请求,获取对应的目标文件,并调用设备选择单元4200选择的目标设备,生成对应的目标页面,展现于当前的窗口内。使得网络资源访问设备生成的原生UI组件组成的交互页面与HTML浏览引擎生成的网页页面可以在同一个窗口展示。在用户交互访问需要通过网络资源访问设备访问的网络资源以及需要通过HTML浏览引擎访问的网络资源时,可以通过刷新或其他类似的操作(例如点击界面提供的前进或后退的箭头进行刷新),在相同的窗口中浏览原生UI组件组成的交互页面和HTML网页页面,提供给用户连续谐美的用户体验。
在另一个例子中,混合设备4000中,指定的脚本语言为JavaScript,网络资源访问设备的脚本解析单元复用所述HTML浏览引擎的JS引擎。网络资源访问设备的脚本解析单元用于解析使用指定的脚本语言编写的业务功能脚本。HTML浏览引擎的JS引擎用于通过JavaScript解析所述网页文档数据。指定的脚本语言为JavaScript时,网络资源访问设备的脚本解析单元复用所述HTML浏览引擎的JS引擎。可以降低混合设备4000的实现结构复杂度。提升运行效率。
本实施例中的混合设备4000,可以存在多种具体的实施方式,例如,作为浏览器的功能模块,用于提供类似浏览器的内核或浏览引擎的功能以实现网络资源的访问,又例如,作为某个应用程序(例如类似微信这样的互联网信息交互平台)的功能模块,提供访问网络资源的功能,或者以外置的插件或模块的实施方式,被可与其交互的应用程序调用以提供访问网络资源的功能。此外,本实施例中的混合设备4000,也可能存在多种产品形式,可以是被包含在浏览器或者某个应用程序中,以完整的浏览器或应用程序的完整的产品形式呈现,也可以以插件、外设程序包等独立的产品形式呈现。本实施例中,不限制混合设备4000的具体实施方式以及产品形式,只要在应用场景下实现本实施例中提供的网络资源访问设备的功能的设备,或是本领域技术人员基于本实施例中提供的网络资源访问设备的功能,出于对所述非技术性因素的考虑直接设计出期望的产品,均在本实施例的保护范围。
在本实施例中,还提供一种网络资源访问方法,如图5所示。该方法基于本实施例中提供的混合设备4000实施,在此不再赘述。
一种网络资源访问方法,该方法实施于指定的操作系统,所述方法包括如下步骤:
步骤S5100,根据所获取的网络资源访问请求,从网络资源访问设备以及HTML浏览引擎中,选择对应的目标设备,其中,
所述网络资源访问设备如本发明第一实施例中所提供的网络资源访问设备2000,用于根据所接收的使用指定的脚本语言编写的业务功能脚本,调用原生API生成对应的由指定的操作系统的若干个原生UI组件组成的交互页面,
所述HTML浏览引擎,用于根据所接收的网页文档数据生成对应的网页页面,包括用于通过JavaScript解析所述网页文档数据的JS引擎,以及用于生成与所述网页文档数据对应的网页的排版引擎。
可选地,所述HTML浏览引擎为Chromium或者Webkit。
在一个例子中,所述指定的脚本语言为JavaScript时,所述网络资源访问设备的脚本解析单元复用所述HTML浏览引擎的JS引擎。
在步骤S5100之后,进入步骤S5200,根据所接收的网络资源访问请求,获取对应的目标文件,调用所述目标设备,生成与所述目标文件对应的目标页面,展现于当前窗口内,其中,
若所述目标文件为与所述网络资源访问请求对应的所述业务功能脚本,目标设备为所述网络资源访问设备,所述目标页面为根据本发明第一实施例中提供的任意一项网络资源访问方法获取的与所述业务功能脚本对应的所述交互页面;
若所述目标文件为与所述网络资源访问请求对应的所述网页文档数据,目标设备为所述HTML浏览引擎,所述目标页面为与所述网页文档数据对应的所述网页页面。
在一个例子中,所述网络资源访问请求中包含用于指示目标设备的类型指示。
在另一个例子中,所述网络资源访问请求包含URL,所述根据所接收的网络资源访问请求,获取目标设备的目标文件的步骤5200,包括:
根据所接收的URL,获取所请求访问的网络资源的位置;
从所述网络资源的位置,获取对应的目标文件。
本发明实施例中在提供一种可编程设备,包括存储器和处理器,其中,所述存储器用于存储指令,所述指令用于控制所述处理器进行操作以执行本发明实施例提供的任意一项的网络资源访问方法。
以上已经结合附图描述了本发明的第二实施例,根据本实施例,提供一种混合设备、基于该混合设备的网络资源访问方法。可以根据网络资源获取请求,从本发明的第一实施例提供的网络资源访问设备和HTML浏览引擎中选择适用的目标设备访问请求的网络资源。使得所述网络资源访问设备和HTML浏览引擎较好地融合。此外,在用户交互访问需要通过网络资源访问设备访问的网络资源以及需要通过HTML浏览引擎访问的网络资源时,可以使得用户在相同的窗口中浏览原生UI组件组成的交互页面和HTML网页页面。提供给用户连续谐美的用户体验。
本领域技术人员应当明白,可以通过各种方式来实现网络资源访问设备2000和混合设备4000。例如,可以通过指令配置处理器来实现网络资源访问设备2000和混合设备4000。例如,可以将指令存储在ROM中,并且当启动设备时,将指令从ROM读取到可编程器件中来实现网络资源访问设备2000和混合设备4000。例如,可以将网络资源访问设备2000和混合设备4000固化到专用器件(例如ASIC)中。可以将网络资源访问设备2000和混合设备4000分成相互独立的单元,或者可以将它们合并在一起实现。网络资源访问设备2000和混合设备4000可以通过上述各种实现方式中的一种来实现,或者可以通过上述各种实现方式中的两种或更多种方式的组合来实现。
本领域技术人员公知的是,随着诸如大规模集成电路技术的电子信息技术的发展和软件硬件化的趋势,要明确划分计算机系统软、硬件界限已经显得比较困难了。因为,任何操作可以软件来实现,也可以由硬件来实现。任何指令的执行可以由硬件完成,同样也可以由软件来完成。对于某一机器功能采用硬件实现方案还是软件实现方案,取决于价格、速度、可靠性、存储容量、变更周期等非技术性因素。因此,对于电子信息技术领域的普通技术人员来说,更为直接和清楚地描述一个技术方案的方式是描述该方案中的各个操作。在知道所要执行的操作的情况下,本领域技术人员可以基于对所述非技术性因素的考虑直接设计出期望的产品。
本发明可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本发明的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本发明操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本发明的各个方面。
这里参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本发明的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。对于本领域技术人员来说公知的是,通过硬件方式实现、通过软件方式实现以及通过软件和硬件结合的方式实现都是等价的。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。本发明的范围由所附权利要求来限定。
Claims (10)
1.一种网络资源访问设备,其特征在于,该设备基于指定的操作系统实现,并包括:
原生API单元,用于提供具有访问所述操作系统的功能的原生API,所述访问所述操作系统的功能至少包括访问操作系统的原生UI组件的功能,所述原生API使用所述操作系统的原生开发语言实现;
脚本解析单元,用于解析所获取的用指定的脚本语言编写的业务功能脚本,以获取所述业务功能脚本描述的业务功能的内容;
页面渲染单元,用于根据所述业务功能的内容,调用所述原生API单元提供的所述原生API,渲染生成由若干个原生UI组件组成的交互页面。
2.根据权利要求1所述的网络资源访问设备,其特征在于,还包括:响应于用户在所述交互页面上的操作将与操作内容对应的参数写入与所述交互页面对应的所述业务功能脚本的装置。
3.一种网络资源访问方法,其特征在于,该方法实施于指定的操作系统,并包括以下步骤:
解析所获取的业务功能脚本,获取所述业务功能脚本描述的业务功能的内容;
根据所述业务功能的内容,调用具有访问所述操作系统的功能的原生API,渲染生成与所述业务功能脚本对应的由若干个原生UI组件组成的交互页面,其中,所述访问所述操作系统的功能至少包括访问操作系统的原生UI组件的功能,所述原生API使用所述操作系统的原生开发语言实现。
4.根据权利要求3所述的方法,其特征在于,还包括:
响应于用户在所述交互页面上的操作,将与操作内容对应的参数写入与所述交互页面对应的所述业务功能脚本;
解析写入所述参数的所述业务功能脚本,并且根据解析获取的对应的写入所述参数的业务功能的内容,调用具有访问所述操作系统的功能的原生API,渲染生成对应的响应用户操作的交互页面。
5.一种混合设备,其特征在于,用于访问网络资源,该混合设备基于指定的操作系统实现,并包括:
如权利要求1-2所述的任意一项的网络资源访问设备,包括原生API单元、脚本解析单元以及页面渲染单元,用于根据所接收的使用指定的脚本语言编写的业务功能脚本,调用原生API生成对应的由指定的操作系统的若干个原生UI组件组成的交互页面;
HTML浏览引擎,用于根据所接收的网页文档数据生成对应的网页页面,包括用于通过JavaScript解析所述网页文档数据的JS引擎,以及用于生成与所述网页文档数据对应的网页的排版引擎;
设备选择单元,用于根据接收的网络资源访问请求,从所述网络资源访问设备以及所述HTML浏览引擎中,选择对应的目标设备;
设备框架单元,用于根据接收的网络资源访问请求,获取对应的目标文件,并调用所述目标设备,生成与所述目标文件对应的目标页面,展现于当前的窗口内,其中,
若目标设备为所述网络资源访问设备,所述目标文件为与所述网络资源访问请求对应的所述业务功能脚本,并且所述目标页面为所述业务功能脚本对应的所述交互页面,
若目标设备为所述HTML浏览引擎,所述目标文件为与所述网络资源访问请求对应的所述网页文档数据,并且所述目标页面为所述网页文档数据对应的所述网页页面。
6.根据权利要求5所述的混合设备,其特征在于,所述网络资源访问请求包含URL,所述设备框架单元还用于:
根据所接收的URL,获取所请求访问的网络资源的位置;
从所述网络资源的位置,获取对应的目标文件。
7.一种网络资源访问方法,其特征在于,该方法实施于指定的操作系统,并包括如下步骤:
根据所获取的网络资源访问请求,从网络资源访问设备以及HTML浏览引擎中,选择对应的目标设备,其中,
所述网络资源访问设备如权利要求1-2任意一项所述,包括原生API单元、脚本解析单元以及页面渲染单元,用于根据所接收的使用指定的脚本语言编写的业务功能脚本,调用原生API生成对应的由指定的操作系统的若干个原生UI组件组成的交互页面,
所述HTML浏览引擎,用于根据所接收的网页文档数据生成对应的网页页面,包括用于通过JavaScript解析所述网页文档数据的JS引擎,以及用于生成与所述网页文档数据对应的网页的排版引擎;
根据所接收的网络资源访问请求,获取对应的目标文件,调用所述目标设备,生成与所述目标文件对应的目标页面,展现于当前窗口内,其中,
若所述目标文件为与所述网络资源访问请求对应的所述业务功能脚本,目标设备为所述网络资源访问设备,所述目标页面为根据权利要求3-4所述的任意一项网络资源访问方法获取的与所述业务功能脚本对应的所述交互页面,
若所述目标文件为与所述网络资源访问请求对应的所述网页文档数据,目标设备为所述HTML浏览引擎,所述目标页面为与所述网页文档数据对应的所述网页页面。
8.根据权利要求7所述的方法,其特征在于,所述网络资源访问请求包含URL,所述根据所接收的网络资源访问请求,获取对应的目标文件的步骤,包括:
根据所接收的URL,获取所请求访问的网络资源的位置;
从所述网络资源的位置,获取对应的目标文件。
9.一种可编程设备,其特征在于,包括存储器和处理器,其中,所述存储器用于存储指令,所述指令用于控制所述处理器进行操作以执行根据权利要求1或2所述的任意一项的网络资源访问方法。
10.一种可编程设备,其特征在于,包括存储器和处理器,其中,所述存储器用于存储指令,所述指令用于控制所述处理器进行操作以执行根据权利要求7或8所述的任意一项的网络资源访问方法。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610383985.XA CN107451162B (zh) | 2016-06-01 | 2016-06-01 | 网络资源访问设备、混合设备及方法 |
PCT/CN2017/081730 WO2017206626A1 (zh) | 2016-06-01 | 2017-04-24 | 网络资源访问设备、混合设备及方法 |
US16/085,147 US10880227B2 (en) | 2016-06-01 | 2017-04-24 | Apparatus, hybrid apparatus, and method for network resource access |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610383985.XA CN107451162B (zh) | 2016-06-01 | 2016-06-01 | 网络资源访问设备、混合设备及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107451162A true CN107451162A (zh) | 2017-12-08 |
CN107451162B CN107451162B (zh) | 2020-12-18 |
Family
ID=60478490
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610383985.XA Active CN107451162B (zh) | 2016-06-01 | 2016-06-01 | 网络资源访问设备、混合设备及方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10880227B2 (zh) |
CN (1) | CN107451162B (zh) |
WO (1) | WO2017206626A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108647028A (zh) * | 2018-05-09 | 2018-10-12 | 广州腾讯科技有限公司 | 应用程序信息处理方法和装置 |
CN110929205A (zh) * | 2019-11-13 | 2020-03-27 | 贝壳技术有限公司 | 用于加载网页中的控件的方法及装置 |
CN112925998A (zh) * | 2021-03-30 | 2021-06-08 | 北京奇艺世纪科技有限公司 | 界面数据处理方法、装置、系统、电子设备及存储介质 |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110806868B (zh) * | 2018-08-06 | 2023-02-03 | 上海网梯数码科技有限公司 | 一种单页面搭建及加载方法 |
CN111158802B (zh) * | 2018-11-08 | 2023-06-09 | 阿里巴巴集团控股有限公司 | 音频播放的方法、设备、客户端装置及电子设备 |
CN111339455B (zh) * | 2018-12-18 | 2024-02-23 | 阿里巴巴集团控股有限公司 | 浏览器应用加载页面首屏的方法和装置 |
CN111639275B (zh) * | 2019-03-01 | 2023-04-25 | 阿里巴巴集团控股有限公司 | 路由信息处理方法、装置、电子设备及计算机存储介质 |
CN112084445B (zh) * | 2019-06-12 | 2023-12-15 | 阿里巴巴集团控股有限公司 | 信息处理系统、方法以及设备、存储介质 |
CN110427237B (zh) * | 2019-07-29 | 2023-10-20 | 创新先进技术有限公司 | 一种跨应用访问目标页面的方法、装置及电子设备 |
CN112905920B (zh) * | 2019-12-04 | 2023-08-04 | 腾讯科技(深圳)有限公司 | 一种页面显示的方法和装置 |
CN113791777B (zh) * | 2020-07-28 | 2024-06-14 | 北京沃东天骏信息技术有限公司 | 图片显示方法及装置、计算机可读存储介质及电子设备 |
CN112118319B (zh) * | 2020-09-22 | 2023-06-09 | 国网数字科技控股有限公司 | 一种网络url资源处理方法及系统 |
CN114765580B (zh) * | 2020-12-30 | 2023-11-03 | 腾讯科技(深圳)有限公司 | 域外网络资源的网络加速方法、装置、设备及存储介质 |
CN113641923A (zh) * | 2021-08-26 | 2021-11-12 | 挂号网(杭州)科技有限公司 | 一种访问页面生成方法、装置、电子设备及存储介质 |
CN114968617B (zh) * | 2022-04-28 | 2023-09-01 | 杭州未名信科科技有限公司 | Api转换系统及其访问请求处理方法、电子设备及介质 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102207866A (zh) * | 2011-05-25 | 2011-10-05 | 盛乐信息技术(上海)有限公司 | 基于WebOS的应用程序开发、发布、安装、运行系统及方法 |
CN102622211A (zh) * | 2011-01-27 | 2012-08-01 | 腾讯科技(深圳)有限公司 | 一种应用程序开发的方法和装置 |
CN103179166A (zh) * | 2011-12-23 | 2013-06-26 | 腾讯科技(深圳)有限公司 | 在客户端中提供服务的方法和客户端 |
CN104298493A (zh) * | 2013-07-19 | 2015-01-21 | 深圳市同洲电子股份有限公司 | Javascript本地扩展方法及系统 |
US9026905B2 (en) * | 2010-12-17 | 2015-05-05 | Facebook, Inc. | Customization of mobile applications using web-based technology |
CN104615670A (zh) * | 2015-01-16 | 2015-05-13 | 百纳(武汉)信息技术有限公司 | 一种android浏览器中支持多渲染引擎的方法及浏览器 |
CN104636147A (zh) * | 2015-03-09 | 2015-05-20 | 北京恒华伟业科技股份有限公司 | 一种跨平台移动应用的实现方法和系统 |
CN104714830A (zh) * | 2015-04-03 | 2015-06-17 | 普元信息技术股份有限公司 | 基于原生开发语言实现跨平台应用开发的系统及方法 |
CN105159999A (zh) * | 2015-09-08 | 2015-12-16 | 百度在线网络技术(北京)有限公司 | 动态页面的展现方法及装置 |
CN105354013A (zh) * | 2014-08-18 | 2016-02-24 | 阿里巴巴集团控股有限公司 | 应用界面渲染方法及装置 |
CN105389222A (zh) * | 2015-12-15 | 2016-03-09 | 中国科学院声学研究所 | 一种动态调用原生接口的方法、装置和系统 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9910833B2 (en) * | 2012-11-13 | 2018-03-06 | International Business Machines Corporation | Automatically rendering web and/or hybrid applications natively in parallel |
CN105354014B (zh) * | 2014-08-18 | 2018-10-23 | 阿里巴巴集团控股有限公司 | 应用界面渲染展示方法及装置 |
EP3423938A4 (en) * | 2016-03-01 | 2019-12-04 | 650 Industries, Inc. | METHOD AND DEVICE FOR LOADING MULTIPLE DIFFERENT VERSIONS OF A NATIVE LIBRARY IN A NATIVE ENVIRONMENT |
-
2016
- 2016-06-01 CN CN201610383985.XA patent/CN107451162B/zh active Active
-
2017
- 2017-04-24 WO PCT/CN2017/081730 patent/WO2017206626A1/zh active Application Filing
- 2017-04-24 US US16/085,147 patent/US10880227B2/en active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9026905B2 (en) * | 2010-12-17 | 2015-05-05 | Facebook, Inc. | Customization of mobile applications using web-based technology |
CN102622211A (zh) * | 2011-01-27 | 2012-08-01 | 腾讯科技(深圳)有限公司 | 一种应用程序开发的方法和装置 |
CN102207866A (zh) * | 2011-05-25 | 2011-10-05 | 盛乐信息技术(上海)有限公司 | 基于WebOS的应用程序开发、发布、安装、运行系统及方法 |
CN103179166A (zh) * | 2011-12-23 | 2013-06-26 | 腾讯科技(深圳)有限公司 | 在客户端中提供服务的方法和客户端 |
CN104298493A (zh) * | 2013-07-19 | 2015-01-21 | 深圳市同洲电子股份有限公司 | Javascript本地扩展方法及系统 |
CN105354013A (zh) * | 2014-08-18 | 2016-02-24 | 阿里巴巴集团控股有限公司 | 应用界面渲染方法及装置 |
CN104615670A (zh) * | 2015-01-16 | 2015-05-13 | 百纳(武汉)信息技术有限公司 | 一种android浏览器中支持多渲染引擎的方法及浏览器 |
CN104636147A (zh) * | 2015-03-09 | 2015-05-20 | 北京恒华伟业科技股份有限公司 | 一种跨平台移动应用的实现方法和系统 |
CN104714830A (zh) * | 2015-04-03 | 2015-06-17 | 普元信息技术股份有限公司 | 基于原生开发语言实现跨平台应用开发的系统及方法 |
CN105159999A (zh) * | 2015-09-08 | 2015-12-16 | 百度在线网络技术(北京)有限公司 | 动态页面的展现方法及装置 |
CN105389222A (zh) * | 2015-12-15 | 2016-03-09 | 中国科学院声学研究所 | 一种动态调用原生接口的方法、装置和系统 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108647028A (zh) * | 2018-05-09 | 2018-10-12 | 广州腾讯科技有限公司 | 应用程序信息处理方法和装置 |
CN108647028B (zh) * | 2018-05-09 | 2024-02-09 | 广州腾讯科技有限公司 | 应用程序信息处理方法和装置 |
CN110929205A (zh) * | 2019-11-13 | 2020-03-27 | 贝壳技术有限公司 | 用于加载网页中的控件的方法及装置 |
CN112925998A (zh) * | 2021-03-30 | 2021-06-08 | 北京奇艺世纪科技有限公司 | 界面数据处理方法、装置、系统、电子设备及存储介质 |
CN112925998B (zh) * | 2021-03-30 | 2023-07-25 | 北京奇艺世纪科技有限公司 | 界面数据处理方法、装置、系统、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2017206626A1 (zh) | 2017-12-07 |
CN107451162B (zh) | 2020-12-18 |
US20190058667A1 (en) | 2019-02-21 |
US10880227B2 (en) | 2020-12-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107451162A (zh) | 网络资源访问设备、混合设备及方法 | |
US10705942B1 (en) | Simulated testing of API | |
CN107992301B (zh) | 用户界面实现方法、客户端及存储介质 | |
CN108038134B (zh) | 页面展示的方法、装置和存储介质以及电子设备 | |
US9754043B2 (en) | Rendering structured documents with place-markers | |
EP2840511A1 (en) | System and method for dynamically converting webpage, and computer-readable recording medium | |
CN107526751A (zh) | 网页的加载方法、客户端、网页服务器及可编程设备 | |
CN107122172B (zh) | 轻应用的处理方法、运行方法、设备及应用设备 | |
CN107679113A (zh) | 轻应用的获取方法、设备及电子设备 | |
CN110020356A (zh) | 一种页面模块的代码生成方法、装置及系统 | |
CN108255923A (zh) | 图像展示方法、设备及电子设备 | |
CN106874519A (zh) | 页面展现方法和装置 | |
US20150143267A1 (en) | SYSTEM AND METHOD FOR DEVELOPING A RULE-BASED EVENT-DRIVEN MULTI-LAYERED FRONTEND FOR BUSINESS SERVICES AND RENDERING THE GUIs ON MULTIPLE CLIENT DEVICES | |
US10951486B2 (en) | Terminal device, UI expansion method, and UI expansion program | |
CN111796820A (zh) | 基于集成化组件构建前端页面的方法、装置及电子设备 | |
CN112395027A (zh) | 微件界面生成方法、装置、存储介质与电子设备 | |
CN107133235A (zh) | 页面重新排版方法、重新排版装置、浏览器及电子设备 | |
CN110020370B (zh) | 在客户端应用中实现动画的方法、装置及动画脚本的框架 | |
CN110618811B (zh) | 信息呈现方法和装置 | |
CN111506848A (zh) | 网页处理方法、装置、设备及可读存储介质 | |
CN106126198B (zh) | 在移动端加载pc端应用页面的方法及装置 | |
CN107918552A (zh) | 轻应用调用方法、装置、客户端装置及电子设备 | |
US11120099B2 (en) | Rendering a web element in a web page | |
CN113961279A (zh) | 页面渲染方法、装置、服务器和存储介质 | |
CN112559311B (zh) | 一种移动端自动化测试的界面适配方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20200602 Address after: 310051 room 508, floor 5, building 4, No. 699, Wangshang Road, Changhe street, Binjiang District, Hangzhou City, Zhejiang Province Applicant after: Alibaba (China) Co.,Ltd. Address before: 510627 Guangdong city of Guangzhou province Whampoa Tianhe District Road No. 163 Xiping Yun Lu Yun Ping B radio square 14 storey tower Applicant before: GUANGZHOU UCWEB COMPUTER TECHNOLOGY Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |