CN109391676B - 终端设备控制方法、终端设备及计算机可读存储介质 - Google Patents
终端设备控制方法、终端设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN109391676B CN109391676B CN201810796585.0A CN201810796585A CN109391676B CN 109391676 B CN109391676 B CN 109391676B CN 201810796585 A CN201810796585 A CN 201810796585A CN 109391676 B CN109391676 B CN 109391676B
- Authority
- CN
- China
- Prior art keywords
- information
- application program
- application
- terminal device
- local server
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- 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]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/45—Network directories; Name-to-address mapping
- H04L61/4505—Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols
- H04L61/4511—Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols using domain name system [DNS]
-
- 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]
- H04L67/025—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP] for remote control or remote monitoring of applications
-
- 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/12—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
- H04L67/125—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks involving control of end-device applications over a network
-
- 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/2866—Architectures; Arrangements
- H04L67/30—Profiles
-
- 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/34—Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- General Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Information Transfer Between Computers (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供一种终端设备控制方法、终端设备及计算机可读存储介质,该终端设备控制方法包括接收来自前端页面的访问请求信息,访问请求信息中包含有访问路径信息以及操作信息,访问路径信息为终端设备的本地服务器的访问路径信息;根据访问请求信息中的访问路径信息,向本地服务器发送操作信息;对操作信息进行解析获取操作信息对应的原生应用程序及操作,执行对应于原生应用程序的操作。本发明提供的终端设备具有处理器以及存储器,处理器执行计算机程序时可以实现上述的终端设备控制方法。本发明的计算机可读存储介质上存储有用于实现上述方法计算机程序。本发明可以实现前端页面对原生应用程序执行预设的操作。
Description
技术领域
本发明涉及电子设备的控制领域,具体地,是在一种在终端设备上实现终端设备控制方法以及实现这种方法的装置,还涉及一种实现上述方法的终端设备以及计算机可读存储介质。
背景技术
智能手机、平板电脑等终端设备成为人们日常生活中最经常使用的电子设备,人们喜欢在智能电子设备上安装各种应用程序,并且在终端设备上同时运行大量的应用程序。现在很多终端设备的操作***都提供开放的SDK(Software Development Kit,软件开发工具)以及开放的API(Application Programming Interface,应用程序编程接口),以降低应用程序开发的难度,也为应用程序的开发提供一定的标准,因此,人们可选择的应用程序也越来越多。
然而,现有的应用程序的安装包APK大多使用JAVA等语言编写的程序,其中包含有大量按照预先规定的逻辑编写而成的组件,因此,现有的应用程序的安装包需要由终端设备的操作***直接运行,例如,应用程序的安装包下载到终端设备后,由终端设备的操作***对安装包进行解析,并且执行安装操作。现有的应用程序的安装包在安装过程中,操作***将获取安装包的数据并且根据预先规定的逻辑生成相应的文件,包括生成应用程序所需要的控件,这些控件往往是直接运行在操作***上并且实现特定的功能。并且,在应用程序安装完毕后,通常在终端设备的桌面上显示该应用程序的图标,用户需要运行该应用程序时,点击该应用程序的图标,由应用程序的操作***直接运行该应用程序。
随着应用程序实现的功能越来越多,应用程序的页面也越来越多,且运行时占用的硬件资源也越来越多,例如占用更多的内存资源,并且需要调用大量的接口等。由于应用程序的每个页面的设置信息、调用接口的程序文件等都需要写入到应用程序的安装包中,因此,导致应用程序的安装包数据量非常大,用户下载应用程序的安装包往往需要较长的等待时间,并且由于安装包的数据量较大,下载安装包也往往花费不少的数据流量。
由于现在的应用程序的安装包都是需要一次性下载的,也就是用户需要下载应用程序完整的安装包以后,操作***才对安装包进行解析、安装,因此用户往往需要等到较长的时间才能打开应用程序,用户体验较差。
此外,随着网络技术的发展,应用程序开发者开始使用网络技术开发应用程序,例如使用HTML5技术将应用程序的代码设置于云端服务器,用户可以通过终端设备上的浏览器来访问特定的网页,并且从该网页中获取数据。由于用户可以通过浏览器来获取网页的信息,也可以向网页输入信息,从而实现预设的功能,因此,这种网页实际上具有应用程序的功能。由于网页的代码是由应用程序开发方开发,并且设置在服务器上,通常被称为前端页面。
然而,前端页面实现某些功能时,往往需要与终端设备的原生应用程序进行通信,例如前端页面需要获取终端设备上的联系人的信息,此时需要与终端设备上的联系人应用程序进行通信。目前,前端页面与原生应用程序之间进行通信,必须依赖于浏览器自身的功能。例如,在浏览器上添加JavaScript接口的方法来实现前端页面与原生应用程序的通信,但是这种方式依赖于浏览器自身功能来实现,如果运行用户通过一个没有实现这种接口的浏览器来打开前端页面,将无法实现前端页面与原生应用程序之间的通信。
又例如,前端页面通过浏览器拦截重定向网址中的统一资源定位符URL来实现与原生应用程序之间的通信,但是这种方法也依赖浏览器自身的功能实现的。还有一种方式是需要浏览器实现JS桥接的功能,通过解析引擎API注册一些JS回调信息,这种方法也依赖浏览器自身功能的实现,如果前端页面运行在没有注册回调功能的浏览器上,也是无法与原生应用程序之间的通信。因此,前端页面向原生应用程序发送信息时,必须使用具有特定功能的浏览器才能实现,这样大大限制了前端页面的应用。
发明内容
本发明的第一目的是提供一种方便前端页面向原生应用程序发送信息的终端设备控制方法。
本发明的第二目的是提供一种方便前端页面向原生应用程序发送信息的终端设备控制装置。
本发明的第三目的是提供一种实现上述终端设备控制方法的终端设备。
本发明的第四目的是提供一种被处理器读取并执行时能够实现上述终端设备控制方法的计算机可读存储介质。
为了实现上述的第一目的,本发明提供的终端设备控制方法包括接收来自前端页面的访问请求信息,访问请求信息中包含有访问路径信息以及操作信息,访问路径信息为终端设备的本地服务器的访问路径信息;根据访问请求信息中的访问路径信息,向本地服务器发送操作信息;对操作信息进行解析获取操作信息对应的原生应用程序及操作,执行对应于原生应用程序的操作。
由上述方案可见,浏览器对前端页面的数据进行解析后,可以获取访问请求信息中的访问路径信息,由于访问路径信息是指向终端设备本地服务器的访问路径信息,因此浏览器实际上与本地服务器进行通信,由本地服务器对操作信息进行解析,从而确定操作信息对应的原生应用程序以及操作,由本地服务器实现与原生应用程序之间的信息通信。
这样,不管用户是否使用具有特定功能的浏览器来访问前端页面,浏览器都可以通过本地服务器向原生应用程序发送信息,避免因浏览器不具有设置特定接口或者特定功能而无法实现前端页面与原生应用程序通信的问题。
一个优选的方案是,访问路径信息为设置于终端设备的本地服务器的地址信息;根据访问请求信息中的访问路径信息,向本地服务器发送操作信息包括:根据地址信息向本地服务器发送操作信息。这其中,直接或间接的通过访问路径信息与本地服务器连接通信。例如,直接的方式是直接使用本地服务器的IP地址作为访问路径信息,浏览器通过对IP地址的解析来确定访问连接的服务器是本地服务器。对于间接的方式来说,则可以通过映射的方法实现地址的转换,即需要将访问路径信息映射获得本地服务器的IP地址,然后使用该IP地址与本地服务器进行连接通信。
由上述方案可见,将本地服务器的地址设置为访问路径信息,可以方便浏览器根据本地服务器的地址向本地服务器发送操作信息。
一个优选的方案是,访问路径信息为设置于终端设备的本地服务器的预设域名;根据访问请求信息中的访问路径信息,向本地服务器发送操作信息包括:对预设域名进行映射获取映射后的地址信息,地址信息为本地服务器的地址信息,并根据地址信息向本地服务器发送操作信息。
这样,浏览器只需要从前端页面获取预设的域名,操作***的通信模块即可以对域名进行映射获取本地服务器的地址,从而实现对本地服务器的访问。
进一步的方案是,向本地服务器发送操作信息包括:向本地服务器预设的数据传输端口发送操作信息;本地服务器接收到预设的数据传输端口的端口号后,将端口号映射至目标端口号,使用目标端口号对应的数据传输端口接收操作信息。
由此可见,通过将预设的数据传输端口的端口号进行映射,可以使用映射后的目标端口进行数据传输,从而确保本地服务器所使用的真正的端口号不被浏览器所记录,避免第三方应用程序恶意攻击预设端口,提高本地服务器传输的安全性。
一个优选的方案是,该操作包括:向原生应用程序发送信息或者调用原生应用程序。
由此可见,前端页面可以通过访问请求信息中设置操作信息,来实现向原生应用程序发送信息或者调用原生应用程序,可以方便的实现对原生应用程序的多种操作。
进一步的方案是,原生应用程序为应用程序框架,该操作包括:向应用程序框架中的目标应用程序发送信息或者调用应用程序框架中的目标应用程序。
可见,前端页面不但可以调用普通的原生应用程序,还可以调用应用程序框架下的目标应用程序,这样可以实现前端页面对应用程序框架下的应用程序的操作。
更进一步的方案是,执行对应于原生应用程序的操作前,还执行:判断应用程序框架是否运行过目标应用程序,如未运行过,则获取目标应用程序的配置文件,应用程序框架对配置文件进行解析并运行目标应用程序。
由此可见,前端页面可以针对未曾在终端设备运行过的目标应用程序执行预设的操作,终端设备只需要快速下载目标应用程序的配置文件并且运行目标应用程序,然后执行预设的操作。这样,前端页面不需要确定终端设备已经运行过目标应用程序,也可以发出针对目标应用程序的操作的操作指令。
另外,由于目标应用程序是运行在应用程序框架上,应用程序框架提供应用程序运行环境,例如目标应用程序的配置文件下载以后由应用程序框架解析,并且由应用程序框架提供的接口、组件等支持应用程序的运行。这样,目标应用程序的配置文件的数据量可以很小,当需要运行目标应用程序时,可以快速的下载目标应用程序的配置文件并且启动目标应用程序,减小目标应用程序启动运行时的等待时间,提升用户的体验。这样,即使预设的操作是针对未下载配置文件的目标应用程序,终端设备也能够在短时间内运行目标应用程序,提升用户的体验。
更进一步的方案是,调用应用程序框架中的目标应用程序包括调用目标应用程序的目标页面;应用程序框架对配置文件进行解析并运行目标应用程序包括:从配置文件中获取目标页面的描述信息,并且根据描述信息渲染生成目标页面。
可见,前端页面可以通过操作信息来对某一个目标应用程序的页面进行操作,例如向目标页面发送信息或者调用目标页面,使得前端页面实现的功能多样化。
为实现上述的第二目的,本发明提供的终端设备控制装包括:访问请求信息接收模块,用于接收来自前端页面的访问请求信息,访问请求信息中包含有访问路径信息以及操作信息,访问路径信息为终端设备的本地服务器的访问路径信息;操作信息发送模块,用于根据访问请求信息中的访问路径信息,向本地服务器发送操作信息;执行模块,用于对操作信息进行解析获取操作信息对应的原生应用程序及操作,执行对应于原生应用程序的操作。
为实现上述的第三目的,本发明提供的终端设备包括处理器,处理器用于执行存储器中存储的计算机程序时实现上述终端设备控制方法的各个步骤。
为实现上述的第四目的,本发明提供的计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述终端设备控制方法的各个步骤。
附图说明
图1是本发明终端设备控制方法实施例的流程图。
图2是本发明终端设备控制方法实施例中端口映射的流程图。
图3是本发明终端设备控制方法实施例中原生应用程序执行预设操作的流程图。
图4是本发明终端设备控制方法实施例中应用程序框架执行预设操作的流程图。
图5是本发明终端设备控制方法实施例中生成目标应用程序原生页面的流程图。
图6是本发明终端设备控制装置实施例的结构框图。
图7是本发明终端设备实施例的结构框图。
以下结合附图及实施例对本发明作进一步说明。
具体实施方式
本发明终端设备控制方法是应用在诸如智能手机或者平板电脑等终端设备上,用于实现前端页面对终端设备的原生应用程序或者应用程序框架下的应用程序的通信,如发送信息或者调用原生应用程序等。本发明的终端设备控制装置运行在终端设备上,并且用于实现上述的终端设备控制方法。
由于现有的应用程序直接运行在终端设备的操作***上,这些应用程序被称为原生应用程序。例如,用户需要运行某一个原生应用程序时,需要先下载该原生应用程序的安装包,并且由操作***对安装包进行解析。但是,由于现有的原生应用程序的安装包的数据量非常大,导致应用程序的安装包下载时间较长,且安装时间也较长。
为此,本实施例的终端设备上设置应用程序框架以支持应用程序的运行。例如,应用程序框架是运行在终端设备操作***上的软件,在终端设备的操作***上运行有应用程序框架,并且,操作***上还可以运行原生应用程序。可以理解,应用程序框架以及原生应用程序都是直接运行在操作***上,并且由操作***支持运行。因此,本实施例中,应用程序框架可以预先是下载安装到终端设备上,也可以随操作***一并安装到终端设备上。
应用程序框架运行过程中,与原生应用程序相似的地方在于,应用程序框架可以直接使用操作***所提供的资源与服务,例如应用程序框架运行时可以根据需求调用操作***所提供的各种接口、使用操作***的原生控件,还可以从操作***接收消息与广播等,也可以通过操作***向应用程序等发送消息。
为了避免原生应用程序在下载安装包、安装的过程中,用户需要长时间等待的问题,运行在应用程序框架上的应用程序在启动前需要下载的是应用程序的配置文件,配置文件下载到终端设备以后,由应用程序框架进行解析,因此运行在应用程序框架上的应用程序由应用程序框架支持运行。
通常,运行在应用程序框架上的应用程序的配置文件中包括有签名模块以及源文件模块,其中,签名模块包括已经签名并且加密的秘钥文件。源文件模块包括公用资源以及组件、页面目录、项目配置文件manifest等,此外,配置文件还包括开发者针对该应用程序自行定义项目需要的各种模块及配置信息等。
其中,公用资源包括诸如应用程序的图标、应用程序所使用的特殊字体或者特定的背景图片、应用程序的欢迎视频、音频等数据。应用程序公用的组件,例如多个页面或者多个代码段都需要使用的组件,也可以作为公用资源,设置在配置文件的公用资源库中。
页面目录包括应用程序中各个页面的信息,即应用程序的文件夹结构,例如包括各个页面的名称、页面的路径等信息,并且,页面目录还包括每一页面的描述信息,例如该页面的具体布局信息、渲染过程中所需要调用的组件,当然,如果某一页面有特殊的渲染要求,页面目录页可以记录该页面的信息。此外,页面目录还记载各个页面之间的运行逻辑,例如多个页面之间的跳转关系、调用关系等。
项目配置文件包括应用程序的描述,例如声明所需要调用的接口、声明应用程序所需要接收的消息、声明可以被其他应用程序调用等,当然,如果应用程序设置有自定义的组件,也可以将自定义的组件设置在项目配置文件中。
应用程序框架设置有运行支持模块、沙箱模型模块、消息处理模块以及应用管理模块,并且,应用程序框架上可以运行多个应用程序。需要说明的是,运行在应用程序框架上的应用程序在运行过程中通常并不直接使用操作***所提供的资源或者服务,主要是使用应用程序框架所提供的资源与服务。
应用程序框架的运行支持模块用于支持运行在应用程序框架上的应用程序的运行,当前应用程序框架上有应用程序运行时,运行支持模块将启动并且提供应用程序运行过程中所需要的服务。运行支持模块的具体结构将在下文详细描述。
沙箱模型模块为运行在应用程序框架上的应用程序提供运行所需要的沙箱模型,从而实现不同应用程序之间的权限隔离、数据隔离,例如为每一个应用程序提供自身的权限管理,且隔离各个应用程序的数据,避免一个应用程序不恰当的获取另一个应用程序的数据。例如,沙箱模型模块可以设定、记录每一个应用程序能够获取的权限以及不允许获取的权限,并且设定应用程序之间的数据分享、调用机制,通过该机制对各个应用程序的数据进行管理。
消息处理模块用于对应用程序框架上的每一个应用程序接收、发送消息的活动进行管理,包括消息接收注册、消息分发以及消息发送的管理。例如应用程序需要接收某一消息,可以向应用程序框架发出请求接收该消息的请求指令,消息处理模块将创建该消息的接收队列,并且将应用程序添加到该消息接收队列中,实现应用程序消息接收的注册。
优选的,运行在应用程序框架上的应用程序可以静态的注册接收消息,也可以动态的注册接收消息。应用程序静态注册接收消息是在应用程序的配置文件中声明需要接收某一消息,消息处理模块根据该声明将应用程序添加至该消息的接收队列中。应用程序动态注册接收消息是在应用程序运行过程中临时需要接收某一消息,向应用程序框架发出临时接收某一消息的注册请求,消息处理模块根据该请求临时将应用程序框架添加至该消息的接收队列中。
当然,消息处理模块还需要对动态注册接收消息的应用程序进行管理,例如当应用程序不需要再接收该消息时,由应用程序发出注销信息,消息处理模块即将动态注册的应用程序从该消息的接收队列中移除。
如果应用程序框架接收到消息,消息处理模块还需要对所接收到的消息进行分发,例如应用程序框架上的第一个应用程序向第二个应用程序发送消息,第一个应用程序并不是直接向第二个应用程序发送消息,而是由第一个应用程序向应用程序框架发送该消息,由消息处理模块查找到该消息的接收队列,并且向接收队列中的应用程序发送该消息。例如该消息队列中包括第二个应用程序,则消息处理模块向第二个应用程序分发该消息。
应用管理模块用于管理各个应用程序的运行,例如根据用户的指令启动某一个应用程序,或者根据用户的指令关闭某一个应用程序。又例如,将某一个应用程序置于前台运行或者转入后台运行,在某一个应用程序后台运行时间过长后,将该应用程序转入非活跃状态等。
并且,用户可以直接运行一个并未下载配置文件的应用程序,例如在应用程序框架的主页面上显示多个应用程序的图标,这些应用程序包括已经下载配置文件的应用程序以及未下载配置文件的应用程序,用于可以直接点击一个并未下载配置文件的应用程序的图标,应用管理模块可以从服务器上下载该应用程序的配置文件,并且对配置文件进行解析,启动运行该应用程序。当然,如果用户需要删除某一应用程序的配置文件,也可以由应用管理模块对该应用程序的配置文件进行删除的操作。
由于应用程序运行前下载的是配置文件,而不是安装包,且下载的配置文件由应用程序框架进行解析。因此,为了减小用户下载配置文件时的等待时间,需要减小配置文件的数据量,例如,应用程序的配置文件中所包含的页面信息中,仅仅包括应用程序页面的描述信息,但不包括该页面渲染后的完整数据,对于应用程序所需要调用的接口,应用程序的配置文件仅仅给出了应用程序所需要调用的各种接口的名称与调用的规则,但不提供具体的调用接口的函数。这样,运行在应用程序框架上的应用程序的配置文件数据量很少,通常在1M以下。终端设备可以在极短时间内完成应用程序的配置文件的下载。
在应用程序的配置文件下载完毕以后,应用程序框架对配置文件进行解析并随即运行应用程序,例如由运行支持模块支持应用程序的运行。
运行支持模块内设置有第一JS引擎、渲染引擎、控件管理模块、桥接模块、接口管理模块、第三方服务模块以及应用框架等。
在应用程序框架运行过程中,需要使用操作***提供的资源,因此,运行支持模块也需要获取操作***提供的资源,如使用操作***提供的原生控件以及接口等。
由于应用程序的配置文件是由终端设备下载,因此应用程序框架需要从操作***获取所下载的配置文件。目前,大部分应用程序的配置文件使用JS(Java Script)语言编写,在操作***内设置第二JS引擎,用于将配置文件编译成应用程序框架能够解析的语言。当然,应用程序框架也可以直接从操作***获取配置文件,由运行支持模块内的第一JS引擎对配置文件进行解析。
对配置文件解析后,需要渲染生成应用程序的页面,例如由渲染引擎获取配置文件中页面的描述信息,并且根据描述信息来渲染页面。优选的,应用程序的配置文件中包含有关于页面的基础设置信息,例如包括页面背景图案的信息、页面字体样式的信息、图标的位置信息、头像显示位置等信息,但并不包含该页面渲染后的数据,也就是配置文件中页面信息并不是渲染后的页面的数据。
进一步的,应用程序的配置文件中包含有多个组件、运行逻辑以及描述信息等,其中配置文件的组件是根据应用程序框架的要求预先设定的组件,且组件与终端设备的操作***的原生控件存在对应关系,也就是通过该组件的标识可以确定该组件对应的操作***原生控件的名称等。配置文件的运行逻辑用于确定应用程序运行时的逻辑,例如页面之间的上下级关系,即从某一个页面进入下一级页面或者返回上一级页面的关系,并且指示页面上不同按键的作用,如点击某一按键后跳转至下一个页面的逻辑关系等。而描述信息则包含页面的布局信息、颜色、字体、资源、各种声明等。
因此,在渲染引擎渲染应用程序的页面时,需要使用配置文件中的运行逻辑、描述信息,由于描述信息已经给出了页面上各种图标、文字的布局、样式等信息,因此,根据这些描述信息可以实现某一个页面的渲染。
优选的,应用程序框架使用操作***提供的原生控件生成原生页面,因此,在渲染应用程序的页面时,需要根据配置文件中组件与原生控件之间的对应关系,获取配置文件中的组件所对应的原生控件,即获取操作***中用于生成图标、窗口或者导航栏等控件,并且基于这些原生控件渲染生成应用程序的原生页面。因此,控件管理模块需要获取配置文件中组件与原生控件的映射关系,并且根据这些映射关系获取操作***相对应的原生控件,使用原生控件并根据描述信息来实现页面的渲染,从而获得应用程序的原生页面。可见,原生页面是基于操作***的原生控件所渲染形成的页面,这些页面的显示效果与传统的应用程序的页面显示效果相同,从而确保用户体验不会变化。
当然,应用程序框架也提供自身的控件,例如应用框架内包含有应用程序框架所提供的内建控件,渲染生成应用程序的页面时,也可以获取内建控件进行渲染,因此,控件管理模块可以根据实际需要从应用框架中获取所需要的内建控件。
在应用程序运行过程中,应用程序可能需要调用各种接口,例如使用操作***提供的某一个接口。接口管理模块根据应用程序的描述信息,获取应用程序所需要使用的操作***的某一个接口的声明,根据该声明确定所需要调用的接口的名称或者ID等信息,并通过桥接模块从操作***中调取该接口。因此,在应用程序的配置文件中,只需要声明调用某一接口即可,而不需要提供使用该接口的具体函数,从而减小应用程序的配置文件的数据量。
当然,应用程序框架也提供内建接口,例如在应用框架中提供内建接口,应用程序也可以调用内建接口,例如在描述文件中声明需要调用哪一内建接口,接口管理模块将根据描述文件确定所需要调用的内建接口并且提供相应的内建接口给应用程序使用。
此外,应用程序框架还可以向应用程序提供第三方服务,第三方服务是由运行在操作***上的应用程序等提供的服务,例如运行在应用程序框架上的应用程序需要使用运行在操作***上的应用程序的功能时,可以通过第三方服务模块来使用该功能。
通常,第三方服务是在应用程序框架内提供专用的调用接口,当应用程序需要使用第三方服务时,通过这些专用的调用接口使用相应的功能。例如,在第三方服务模块内设置有推送模块、注册模块、支付模块以及统计模块等,应用程序可以通过这些模块实现推送消息的接收、账号注册、支付以及信息统计等功能。可以理解,推送模块注册模块、支付模块以及统计模块是第三方的原生应用程序提供给应用程序框架的调用接口。
此外,应用程序框架自身也可以向应用程序提供多种服务,例如在应用框架内还设置有页面管理模块、路由管理模块以及MVVM模块等,页面管理模块用于实现应用程序的页面管理,例如实现页面的跳转控制、页面的开启与关闭等。并且,页面管理模块可以通过获取应用程序的配置文件中的运行逻辑,实现多个页面之间的跳转关系的设定,从而确定应用程序的多个页面的逻辑。
路由管理模块为应用程序提供路由服务,例如应用程序需要发送消息到某一个特定的节点时,路由管理模块将提供发送该消息的路径,并且将该信息按照该路径发送至当前终端设备的下一个节点上。MVVM模块用于实现MVVM(Model-View-View-Model)功能,例如实现应用程序中视图与模型的分离。
应用框架内提供的内建控件、内建接口以及各种服务都可以被应用程序调用,因此,应用程序的配置文件中并不需要提供实现这些功能的代码,只需要在描述文件中声明需要调用这些功能模块即可。
当应用程序的配置文件下载以后,应用程序框架对配置文件进行解析,首先获取配置文件的签名信息,即获取配置文件中的秘钥文件,使用秘钥文件对配置文件的真实性进行验证。在配置文件通过验证以后,在对配置文件中的源文件模块进行解析。
例如,运行应用程序时,首先获取项目配置文件,获取各种声明信息,如注册接收消息、设置应用程序的调用信息等。同时,渲染生成应用程序的主页面,此时需要从页面目录获取主页面的描述信息,并且确定渲染过程中所需要使用的组件,应用程序框架根据这些组件获取对应的原生控件或者内建控件,由渲染引擎渲染生成主页面。
如果用户在主页面执行操作,例如点击某一按键或者滑动形成预设的轨迹,则根据设定的运行逻辑,执行相应的操作,例如调用某一接口或者调整至另一页面等。
可见,正是由于运行在应用程序框架上的应用程序的配置文件中仅仅包含多个组件、运行逻辑以及各个页面的描述信息,而不会提供渲染后的页面的完整数据,可以大大减少配置文件的数据量。另一方面,对于应用程序运行过程中需要调用的接口以及调用的服务,只需要在配置文件中声明需要调用哪些接口或者服务即可,而不需要提供实现这些服务的具体函数或者代码,因此配置文件的数据量非常小,其下载速度非常快,可以在极短时间内完成配置文件的下载,且应用程序框架在解析配置文件时,所花费的时间也很短,能够在很短时间内实现应用程序的运行。
这样,运行在应用程序框架下的应用程序与原生应用程序相比,运行在应用程序框架下的应用程序的配置文件下载、解析能够在极短时间内完成,因此对于未下载配置文件的应用程序而言,只要用户发出了运行该应用程序的指令,即可以瞬间完成配置文件的下载与运行,从而瞬间打开应用程序。通常,应用程序的配置文件的下载与解析可以在后台完成,用户只需要点击应用程序的图标,即使该应用程序的配置文件并未下载,用户几乎不需要等待即已经打开应用程序的主页面。
由于应用程序运行的时候,所显示的页面也是经过原生控件渲染后的页面,且各种接口均由应用程序框架提供,因此,不会影响用户使用应用程序的体验。
然而,通过前端页面开发的应用程序,有可能需要向终端设备的原生应用程序或者应用程序框架的应用程序发送信息,或者需要调用原生应用程序或者应用程序框架的应用程序,但这种操作严重依赖于浏览器所实现的功能,因此,本发明主要是提供一种实现前端页面向原生应用程序或者应用程序框架的应用程序执行预设操作的方法。下面结合图1介绍前端页面对原生应用程序执行预设的过程。
首先,执行步骤S101,接收来自前端页面的访问请求信息。
用户在终端设备上通过浏览器浏览某一页面时,终端设备实际上是从云端服务器获取页面的数据,前端页面的数据是被预先存储在云端服务器上的代码数据。浏览器获取前端页面的数据后,对所获取的数据进行解析,从而生成前端页面的各种信息并且将前端页面显示在浏览器上。优选的,前端页面可以是基于HTML5技术开发的页面,并且前端页面甚至可以是一个应用程序的配置文件。
例如,用户需要打开某一个前端页面时,在浏览器的地址输入栏中输入前端页面的地址,浏览器通过终端设备的路由模块与云端服务器建立连接,并且从云端服务器中获取前端页面的数据。此时,前端页面向终端设备发送的数据中包含有访问请求信息,浏览器接收该访问请求信息。
优选的,访问请求信息具有固定的格式或者固定的存储位置或者包含有预设的标识,浏览器接收到前端页面的数据以后,可以根据预设的标识来确定访问请求信息的起止位置,或者从预设的存储位置中获取访问请求信息。进一步的,访问请求信息包含有访问路径信息以及操作信息,其中,访问路径信息是指向终端设备本地服务器的访问路径信息,而操作信息则是以参数的形式写入到访问请求信息中的信息,如包含有针对的原生应用程序、需要执行的预设操作等信息。
本实施例中,终端设备上需要运行一个本地服务器,该本地服务器可以运行在终端设备上某一个预设的进程上,如操作***的初始化进程init,或者是其他进程,并且在操作***启动以后,该进程需要跟随操作***启动,也就是本地服务器运行在一个操作***自启动的进程上。优选的,本地服务器是一个HTTP服务器,即基于HTTP协议运行的服务器。由于前端页面通常是基于HTML语言开发的页面,因此,将本地服务器设置为HTTP服务器,能够更好的对前端页面的数据进行解析,且本地服务器的通信协议与前端页面的开发语言相匹配,兼容性更好。
由于终端设备设定的本地服务器的访问地址是127.0.0.1,因此,来自前端页面的访问请求信息中所包含的访问路径信息中,记录的访问地址就是127.0.0.1,即本地服务器的访问地址。
优选的,建立本地服务器时,本地服务器向操作***的通信模块发送信息以声明本地服务器的IP地址是127.0.0.1,并且向通信模块提供具体的访问路径,例如提供本地服务器所在的进程的进程号。这样,通信模块接收到访问IP地址为127.0.0.1的指令后,将直接调用相应的进程,从而实现对本地服务器的访问。
接着,执行步骤S102,获取访问请求信息中的访问路径信息。
浏览器接收到前端页面的访问请求信息以后,对访问请求信息进行解析,获取访问请求信息中的访问路径信息以及操作信息。由于访问路径信息是表示浏览器需要访问的页面的路径,通常是一个具体的路径信息,如某一个服务器的地址信息。因此,浏览器可以通过对访问请求信息进行简单的解析获取访问路径信息。
本实施例中,访问路径信息是本地服务器的地址信息,即127.0.0.1,实际应用时,访问路径信息也可以是本地服务器的运行路径,如指向本地服务器所在的进程的路径。
可选的,访问路径信息可以不是一个IP地址,即不是127.0.0.1,而是一个预设的域名信息,例如WWW.ABC.COM的域名。这样,浏览器接收到访问该域名的指令以后,通过操作***的通信模块访问该域名所在的服务网。此时,通信模块需要对该预设的域名进行映射,映射后获得本地服务器的IP地址,即127.0.0.1。因此,通信模块需要设置一个映射规则,即凡是接收到域名为WWW.ABC.COM的域名,需要执行映射操作,且映射获得的IP地址是127.0.0.1。
然后,执行步骤S103,根据访问路径信息,向本地服务器发送操作信息。
在获取访问路径信息以后,根据访问路径信息可以确定需要访问的服务器是终端设备的本地服务器。例如,浏览器对访问地址进行解析后,确定该地址指向本地服务器,则根据HTTP协议向本地服务器发送数据。本实施例中,浏览器向本地服务器发送的信息是包含在访问请求信息中的操作信息。
由于步骤S102中对访问请求信息进行解析,并获取了访问地址信息,因此,浏览器可以将访问请求信息中除了访问地址信息以外的信息作为操作信息,并且将操作信息发送至本地服务器。优选的,操作信息中包含有针对原生应用程序执行预设操作的信息,因此,操作信息中包含有原生应用程序的标识信息,例如原生应用程序的包名或者ID等标识信息,还包括预设操作的名称或者标识等信息。
进一步的,前端页面也可以针对应用程序框架中的某一个应用程序执行预设操作,例如向应用程序框架的目标应用程序发送信息,或者调用目标应用程序的目标页面等。由于应用程序框架在操作***中被视为一个原生应用程序,因此操作信息中需要将原生应用程序的标识信息设置为应用程序框架,如将应用程序框架的包名设置为原生应用程序的包名。如果针对应用程序框架中的目标应用程序或者目标页面执行预设操作,则需要将目标应用程序的包名或者目标页面的名称等信息记录在操作信息中,且还将预设的操作记录在操作信息中。
然后,执行步骤S104,本地服务器对操作信息进行解析,确定操作信息对应的原生应用程序以及预设操作。
本地服务器接收到浏览器发送的操作信息以后,对所接收到的操作信息进行解析。由于操作信息是按照预设的规则编写的操作信息,因此,本地服务器按照预设的规则对操作信息进行解析,可以获取操作信息中包含的所针对的原生应用程序的信息,如原生应用程序的包名等。原生应用程序可以是普通的原生应用程序,如通讯录、电话本等操作***自带的原生应用程序,也可以是应用程序框架。
操作信息还包括针对原生应用程序的预设操作,例如向原生应用程序发送信息,或者调用原生应用程序等,这些信息作为参数记录在操作信息中。因此,前端页面的开发者需要预先将原生应用程序的包名以及预设操作的信息记录在访问请求信息中,以便于本地服务器对操作信息进行解析时获取这些信息。
最后,执行步骤S105,对原生应用程序执行预设操作。
在步骤S104获取了原生应用程序的包名以及预设操作的信息以后,步骤S105则执行针对于原生应用程序的预设操作,例如向原生应用程序发送信息或者调用原生应用程序。由于本地服务器运行在终端设备的一个进程上,因此可以通过操作***现有的机制来实现各种预设操作,如通过消息管理模块向原生应用程序发送信息,或者通过活动管理模块执行调用原生应用程序的操作。对原生应用程序执行预设操作的具体步骤将在下文详细说明。
在步骤S103中,浏览器获取访问路径信息以后,根据访问路径信息向本地服务器发送操作信息。通常,本地服务器具有大量的数据传输端口,而访问路径信息中通常也包含有向本地服务器发送数据所使用的数据传输端口的端口号,最为常见的端口号是80。当然,浏览器也可以通过其他数据传输端口向本地服务器发送操作信息。
然而,终端设备必须监听本地服务器的数据传输端口,从而接收通过该数据传输端口所传输的数据。由于本地服务器的数据传输端口数据量庞大,终端设备不可能监听每一个数据传输端口,往往只监听少量的数据传输端口,因此,浏览器也只能向本地服务器若干个特定的数据传输端口发送数据。例如,本地服务器默认使用的数据传输端口是端口80,则终端设备监听本地服务器的端口80即可。
但是,由于本地服务器是运行在一个特定的进程上,如果需要监听本地服务器的端口80,往往需要该进程具有***级权限。但是,如果运行本地服务器的进程不具备***级权限,则该进程无法监听端口80,导致本地服务器无法接收到浏览器向端口80发送的操作信息。为此,本实施例提供一种端口映射方案来解决这一问题。
参见图2,对端口进行映射时,首先执行步骤S201,浏览器通过预设的数据传输端口向本地服务器发送操作信息。
由于访问请求信息中的访问地址信息包含有本地服务器的访问地址信息,还包括需要向本地服务器发送数据的数据传输端口的端口号,例如默认的数据传输端口是端口80。如果前端页面向浏览器发送的访问请求信息中,访问地址信息不包含数据传输端口的端口号,则默认使用端口80传输数据。如果访问地址信息包含有特定的端口号,则使用该端口号对应的数据传输端口发送操作信息。
然后,执行步骤S202,判断预设的数据传输端口是否为待映射的端口,如是,执行步骤S203,否则,执行步骤S205。
在获取访问地址信息中的数据传输端口以后,判断该数据传输端口的端口号是否一个待映射端口。因此,本地服务器记录有待映射的数据传输端口的端口号,并且将预设的数据传输端口的端口号与待映射的端口号进行对比,从而判断预设的数据传输端口是否为一个待映射的端口。
步骤S203,本地服务器对预设的数据传输端口的端口号进行映射,获取目标端口号。
本地服务器可以调用操作***提供的映射服务,将预设的数据传输端口的端口号映射至目标端口号。例如,本地服务器调用映射进程的接口,通过映射进程将预设的端口号映射获得目标端口号。当然,本地服务器也可以设置一个映射表,该映射表包括待映射端口号与映射后的端口号的对应关系,因此,通过查询该映射表可以将预设的数据传输端口号映射至目标端口号,从而获得映射后的目标端口号。例如,预设的数据传输端口的端口号是80,通过映射后,目标端口号为8081。
步骤S204,本地服务器通过目标端口号对应的数据传输端口接收操作信息。
在步骤S203获取映射后的目标端口号以后,本地服务器监听目标端口号对应的数据传输端口,浏览器将通过目标端口号对应的数据传输端口向本地服务器发送操作信息。因此,本地服务器可以通过监听目标端口号对应的数据传输端口来获取操作信息,然后对所接收的操作信息进行解析。
这样,当本地服务器运行在没有***级权限的进程时,本地服务器也能够通过映射后的目标端口号对应的数据传输端口接收浏览器发送的操作信息。因此,本地服务器可以设置在权限较低的进程中,而不需要设置在具有***级权限的进程中。由于具有***级权限的进程往往是操作***最底层的核心进程,而这些进程的更新、升级非常麻烦,如果将本地服务器设置在这些进程上,往往不利于本地服务器的更新、升级。通过端口映射技术,可以将本地服务器设置在权限较低的进程上,而权限较低的进程的升级、更新较为简单,这样可以有利于本地服务器的升级、更新。
步骤S205,通过预设的数据传输端口接收操作信息。
如果步骤S202判断预设的数据传输端口不是待映射的端口,则不需要对预设的数据传输端口进行映射,而是直接使用预设的数据传输端口接收操作信息。例如,访问请求信息中的地址信息包含的端口号是8080端口,而端口8080并不是需要映射的端口,则浏览器可以直接向本地服务器的8080端口发送操作信息,本地服务器也直接监听端口8080,并且通过端口8080接收操作信息。
本实施例的前端页面对原生应用程序执行的预设操作可以有多种,下面结合图3介绍本地服务器对原生应用程序执行预设操作的具体流程。
首先,执行步骤S301,根据所接收的操作信息确定原生应用程序以及预设的操作。
本地服务器通过对操作信息的解析,获取操作信息中原生应用程序的包名或者ID等标识信息,从而确定操作信息所对应的原生应用程序。此外,本地服务器还从操作信息中获取预设操作的信息,例如获取预设操作的名称或者预设操作的标识等。
然后,执行步骤S302,判断预设的操作是否为向原生应用程序发送信息,如是,执行步骤303,否则,执行步骤S304。
在获取操作信息中的预设操作的信息以后,对预设操作进行判断,确定预设操作的具体操作。例如,判断预设操作是否为向原生应用程序发送信息。由于预设操作具有自身的名称或者ID,因此本地服务器可以通过预设操作的名称来确定预设的操作是否为向原生应用程序发送信息。
步骤S303,通过消息管理模块向原生应用程序发送信息。
如果步骤S302确定预设操作是向原生应用程序发送信息,本地服务器还需要从操作信息中获取发送的信息的内容,例如向某一原生应用程序发送一个表示当前地址更改的信息。通常,前端页面向浏览器发送的访问请求信息中包含了向原生应用程序所发送的信息的具体内容,因此,本地服务器通过对操作信息的解析可以获取前端页面向原生应用程序发送的信息的具体内容。
在确定向原生应用程序发送的信息的具体内容后,本地服务器并不会直接向原生应用程序发送信息,而是根据操作***现有的机制,例如通过消息管理模块向原生应用程序发送信息。通常,操作***设置有用于消息管理的模块,如消息管理模块,用于对原始应用程序或者进程之间的消息分发进行管理。因此,本地服务器需要向某一个原生应用程序发送信息时,首先将所需要发送的信息发送至消息管理模块,消息管理模块按照现有的机制对所需要发送的信息进行分发。例如,消息管理模块获取接收消息的原生应用程序的包名或者ID以后,向原生应用程序传输所由本地服务器发出的信息,以实现原生应用程序接收前端页面发送的信息。
步骤S304,判断预设的操作是否为调用原生应用程序,如是,执行步骤S305,否则,执行步骤S306。
在确定预设的操作不是向原生应用程序发送信息,则进一步判断预设的操作是否为调用原生应用程序。由于每一种操作具有自己唯一的标识,因此,本地服务器可以通过获取预设操作的标识来确定预设的操作是否为调用原生应用程序。
步骤S305,向活动管理模块发送调用请求指令。
如果确定前端页面需要调用原生应用程序,则本地服务器向操作***的活动管理模块发送调用请求指令,调用请求指令中包含有被调用的原生应用程序的名称或者ID等。活动管理模块接收到调用请求指令后,对调用请求指令进行解析,确定需要调用的原生应用程序,并且通过原生应用程序提供给活动管理模块的调用接口调用原生应用程序。当活动管理模块调用原生应用程序后,终端设备将调制至被调用的原生应用程序,并且将原生应用程序置于前台运行。
优选的,如果原生应用程序具有多个进程,前端页面还可以指定调用原生应用程序的某一个进程,此时,在操作信息中需要写入调用的原生应用程序的进程的名称或者PID等。活动管理模块接收到的调用请求指令应该包含有调用的进程名称或者PID,从而直接调用相应的进程,例如通过预设的接口调用该进程,此时,终端设备将相应进程对应的页面置于前台运行,用户可以看到所调用的具体的进程所在的页面,并且执行相应的操作,如查看短信、拨打电话等。
步骤S306,执行与预设操作相匹配的其他操作。
如果确定预设操作不是向原生应用程序发送信息或者调用原生应用程序,则表示前端页面需要对原生应用程序执行其他的操作,例如向原生应用程序发送执行特定操作的指令等。本地服务器通过操作***提供的服务执行针对原生应用程序的预设操作。
需要说明的是,如果前端页面发送的访问请求指令中操作信息记录的原生应用程序是一个未下载安装的应用程序,也就是终端设备上不存在该原生应用程序,则本地服务器将向浏览器发送无法查找到原生应用程序的返回信息,通过浏览器向前端页面发送返回信息,这样,前端页面接收到无法执行预设操作的返回信息,且无法执行预设操作的原因是终端设备未安装该原生应用程序。
当然,前端页面还可以针对应用程序框架下的应用程序发出执行预设操作的指令,下面结合图4介绍应用程序框架的应用程序执行预设操作的流程。
首先,执行步骤S401,判断原生应用程序是否为应用程序框架,如是,执行步骤S402。
由于操作***将应用程序框架视为一个原生应用程序,也就是在操作***下,应用程序框架与其他的原生应用程序一样,具有自己唯一的包名或者ID等,因此,本地服务器通过对操作信息的解析,可以判断出针对的原生应用程序是否为应用程序框架。
步骤S402,从操作信息中获取目标应用程序的信息。
如果确定前端页面是针对应用程序框架执行预设操作,由于应用程序框架自身并不实现具体的功能,应用程序框架所实现的具体操作由运行在应用程序框架上的具体应用程序实现,因此,前端页面如果针对应用程序框架发送执行预设操作的信息,还需要指明针对应用程序框架中的哪一个具体的应用程序执行预设操作,也就是操作信息中包含有应用程序框架以及应用程序框架中的一个具体的目标应用程序的名称等信息。
本地服务器接收到操作信息以后,对操作信息进行解析并且获取目标应用程序的名称或者ID等信息,从而确定前端页面是针对哪一目标应用程序执行预设操作。
步骤S403,判断目标应用程序是否曾经运行过,如是,执行步骤S405,否则,执行步骤S404。
由于应用程序框架上运行有一个或者多个应用程序,但前端页面可能针对一个并未运行过的应用程序发送预设操作的指令,因此,应用程序框架接收到操作信息以后,获取操作信息中针对的目标应用程序以后,还需要判断目标应用程序是否曾经运行过。
由于应用程序框架的特点,应用程序在应用程序框架下运行,是需要先现在应用程序的配置文件,由应用程序框架对配置文件进行解析并且运行应用程序的。如果目标应用程序曾经运行过,则表示目标应用程序的配置文件曾经下载过,无需再下载目标应用程序的配置文件。如果目标应用程序并未运行过,则表示目标应用程序的配置文件并未下载,需要下载目标应用程序的配置文件。
优选的,应用程序框架记录每一个曾经运行的应用程序的名称或者ID信息,步骤S403通过目标应用程序的名称或者判断目标应用程序是否曾经运行过。
步骤S404,发送下载目标应用程序配置的请求指令。
如果确定目标应用程序是一个未曾运行过的应用程序,也就是目标应用程序的配置文件并未下载过,则需要下载目标应用程序的配置文件。因此,应用程序框架向预设的服务器发送下载目标应用程序的配置文件的请求指令,请求指令中包含有目标应用程序的名称或者ID等信息。优选的,如果目标应用程序的配置文件有多个数据包,则可以只下载主数据包,或者只下载包含有特定页面的描述信息的数据包,而不是下载配置文件的全部数据包。
步骤S405,获取目标应用程序的配置文件,对配置文件进行解析并运行目标应用程序。
如果应用程序框架中包含有目标应用程序的配置文件,则根据配置文件的存储路径获取配置文件。如果应用程序未运行目标应用程序,则下载获取目标应用程序的配置文件。在获取目标应用程序的配置文件后,应用程序框架对配置文件进行解析,优选的,配置文件中包含有目标应用程序运行时所需的各种信息,包括目标应用程序声明所需要调用的接口,或者目标应用程序运行时所需要接收的消息,或者目标应用程序可以被其他应用程序所调用的信息等。
应用程序框架对配置文件进行解析后,一方面获取配置文件中的各种声明,另一方面获取目标应用程序的页面的描述信息,例如,获取目标应用程序的主页面的描述信息,并且获取配置文件的组件,由应用程序框架的渲染模块对主页面进行渲染,从而生成目标应用程序的主页面。这样,用户可以在终端设备的屏幕上看到目标应用程序的主页面,并且可以对目标应用程序执行操作。
步骤S406,对目标应用程序执行预设的操作。
在运行目标应用程序以后,应用程序框架根据本地服务器发送的操作指令,对目标应用程序执行相应的操作。例如,本地服务器发送的操作指令是调用目标应用程序,则应用程序框架运行目标应用程序,将目标应用程序置于前台运行。如果预设的操作是向目标应用程序发送信息,则运行目标应用程序以后,应用程序框架向目标应用程序发送该信息。
由于每一个目标应用程序包括有多个页面,前端页面可以针对某一个页面执行操作,例如前端页面需要调用目标应用程序的某一个目标页面,则应用程序框架需要运行目标应用程序的目标页面,即需要渲染生成目标页面。下面结合图5介绍应用程序框架渲染生成目标应用程序的目标页面的过程。
首先执行步骤S501,获取目标应用程序的配置文件。
由于本地服务器向应用程序框架发送的操作信息中包括有目标应用程序的名称、类别或者目标页面的名称、路径等信息,这样,可以确定预设操作对应的目标应用程序,并且获取目标应用程序的配置文件。例如,应用程序框架记录了每一个应用程序的配置文件存储地址,因此可以从预设的存储地址中获取目标应用程序的配置文件。
然后,执行步骤S502,获取配置文件中的组件。
由于目标应用程序的配置文件中包含有多个组件、运行逻辑以及描述信息等,其中配置文件的组件是根据应用程序框架的要求预先设定的组件,且组件与终端设备的操作***的原生控件存在对应关系,也就是通过该组件的标识可以确定该组件对应的操作***原生控件的名称等。而配置文件的运行逻辑用于确定目标应用程序运行时的逻辑,例如页面之间的上下级关系,即从某一个页面进入下一级页面或者返回上一级页面的关系,并且指示页面上不同按键的作用,如点击某一按键后跳转至下一个页面的逻辑关系等。而描述信息则包含页面的布局信息、颜色、字体、资源、各种声明、调用信息等。
在获取目标应用程序的配置文件以后,应用程序框架对配置文件进行解析,如获取配置文件中的组件,并利用所获取的组件生成目标应用程序的原生页面,以便于用户浏览到目标应用程序的相关页面,并且在目标应用程序的页面上执行所需要的操作。
接着,执行步骤S503,根据所获取的组件确定对应的原生控件。
由于配置文件中的组件与终端设备的操作***的原生控件存在对应关系,因此,步骤S503根据配置文件中组件与原生控件之间的对应关系,获取配置文件中的组件所对应的原生控件,即获取操作***中用于生成图标、窗口或者导航栏等控件。
然后,执行步骤S504,获取目标页面的描述信息。
由于操作指令中包含有目标页面的信息,例如目标页面的名称或者ID等信息,因此,在获取配置文件以后,从配置文件中查找目标页面的描述信息。目标页面的描述信息被记录在配置文件的固定位置,并且具有特定的标记,例如用目标页面名称命名的一个函数体。并且,描述信息中记录了目标页面的页面布局、页面格式等信息。
最后,执行步骤S505,应用所获取的原生控件生成目标应用程序或者目标功能页面的原生页面。
在步骤S503获取原生控件以后,使用所获取的原生控件渲染生成目标应用程序的原生页面。因此,本实施例中的原生页面是基于操作***的原生控件所渲染形成的页面,这些页面的显示效果与传统的应用程序的页面显示效果相同,从而确保用户体验不会变化。
由于在渲染生成目标应用程序的页面时,通过获取目标应用程序的配置文件中的运行逻辑、描述信息,由于描述信息已经给出了页面上各种图标、文字的布局、样式等信息,因此,使用原生控件并且根据描述信息可以实现某一个页面的渲染。此外,通过运行逻辑可以实现多个页面之间的跳转关系的设定,从而生成应用程序的多个页面的逻辑。
当然,如果预设操作针对的是目标应用程序的某一个指定的页面,则访问请求信息中包含有该指定页面的信息,如指定页面的名称或者该指定页面的路径等,应用程序框架接收到调用信息以后,也是需要查找目标应用程序的配置文件,并且根据配置文件中的组件获取原生控件,使用原生控件来生成指定页面的原生页面。如果没有指定是针对哪一个页面,则默认渲染生成目标应用程序的主页面,因此目标页面即为目标应用程序的主页面。
本发明实施例还提供终端设备的控制装置,如图6所示,终端设备控制装置包括访问请求信息接收模块601、操作信息发送模块602以及执行模块604,其中操作信息发送模块602中包含有端口映射模块603,执行模块604包括原生应用程序判断模块605、配置文件下载模块606以及预设操作执行模块607。需要说明的是,本实施例的终端设备控制装置是运行在终端设备上的软件程序,并且用于实现上述的终端设备控制方法。
访问请求信息接收模块601用于接收来自前端页面的访问请求信息,其中,前端页面所发送的访问请求信息中包含有访问路径信息以及操作信息,访问路径信息为终端设备的本地服务器的访问路径信息,例如终端设备本地服务器的地址信息,如127.0.0.1。此外,操作信息包括有前端页面所需要操作的原生应用程序的包名或者PID等标识信息,还包括预设操作的信息。
操作信息发送模块602用于根据访问请求信息中的访问路径信息,向本地服务器发送操作信息。例如,浏览器在获取访问路径信息以后,根据地址信息确定本地服务器的路径,并且将操作信息发送至本地服务器。
浏览器需要向本地服务器的某一个端口发送信息,因此本地服务器需要监听某一个端口的数据传输情况。然而,如果本地服务器运行在一个没有***级权限的进程上,可能监听不了需要***权限才能监听的端口,例如端口80。因此,端口映射模块603需要对访问路径信息中的端口号进行映射。例如,访问路径信息中包含有一个预设的数据传输端口,端口映射模块603判断该数据传输端口的端口号是否为待映射的端口号,如果是待映射的端口号,则对端口号进行映射操作获取映射后的目标端口号,本地服务器监听目标端口号对应的数据传输端口,浏览器使用目标端口号对应的数据传输端口向本地服务器传输操作数据。
执行模块604用于由本地服务器对操作信息进行解析,确定操作信息对应的原生应用程序及预设操作,执行对应于原生应用程序的预设操作。本地服务器通过预设的规则对操作信息进行解析,从而获取操作信息中的原生应用程序的包名或者ID等标识信息,还获取预设操作的信息。
其中,原生应用程序判断模块605判断操作信息中所针对的原生应用程序是否为应用程序框架,还判断针对的原生应用程序是否安装在终端设备上,如果终端设备没有按照该原生应用程序,则本地服务器向浏览器反馈终端设备没有安装原生应用程序的反馈信息。
如果确定操作信息针对的原生应用程序是应用程序框架,则将操作信息发送至应用程序框架,由原生应用程序框架执行预设的操作。例如,向应用程序框架的应用程序发送信息或者调用应用程序框架的应用程序。此时,应用程序框架需要判断所针对的目标应用程序是否曾经运行过,如果未曾运行过,表示目标应用程序的配置文件并未下载,因此,配置文件下载模块606需要下载目标应用程序的配置文件。例如,向云端服务器发送下载配置文件的请求指令,从云端服务器下载目标应用程序的配置文件。应用程序框架获取目标应用程序的配置文件以后,对配置文件进行解析,从而运行目标应用程序。
预设操作执行模块607用于根据操作信息的中的预设操作的信息,对原生应用程序执行预设的操作。例如,预设操作是向原生应用程序发送信息,或者调用原生应用程序,则预设操作执行模块607针对原生应用程序执行相对应的预设操作。
优选的,如果原生应用程序是应用程序框架,则预设操作还需要指明是针对应用程序框架中的哪一个应用程序执行操作,应用程序框架在确定目标应用程序以后,对目标应用程序执行预设的操作,例如向目标应用程序发送信息,或者调用目标应用程序。当然,预设操作还可以是调用目标应用程序中的目标页面,例如调用指定的页面。预设操作执行模块607在确定调用的目标页面以后,从目标应用程序的配置文件中获取目标页面的描述信息,并且从配置文件中获取相应的组件,由应用程序框架的渲染模块应用这些组件,基于描述信息渲染生成目标页面。优选的,每一个组件对应于操作***的原生控件,应用程序框架可以调用原生控件,使用原生控件并且基于目标页面的描述信息渲染生成目标页面的原生页面,从而确保渲染生成的目标页面与普通的原生应用程序的页面风格保持一致,便于用户对目标页面执行操作。
本发明实施例还提供了一种终端设备,如图7所示,为了便于说明,仅示出了与本发明实施例相关的部分,具体技术细节未揭示的,请参照本发明实施例方法部分。该终端设备可以为包括手机、平板电脑、个人数字助理(英文全称:Personal Digital Assistant,英文缩写:PDA)等任意终端设备。
参考图7,终端设备包括有处理器701、存储器702、电源703以及存储在存储器中并可在处理器上运行的计算机程序。其中,处理器701执行计算机程序时实现上述各个信息处理方法实施例中的步骤,例如图1所示的步骤S101至S105等。或者,处理器执行计算机程序时实现上述各装置实施例中各模块或单元的功能。
示例性的,计算机程序可以被分割成一个或多个模块/单元,一个或者多个模块/单元被存储在存储器中,并由处理器执行,以完成本发明。上述的一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述计算机程序在终端设备中的执行过程。
本领域技术人员可以理解,图7中示出的结构并不构成对终端设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置,例如上述的终端设备还可以包括输入输出设备、网络接入设备、总线等。
所称处理器可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,处理器是终端设备的控制中心,利用各种接口和线路连接整个终端设备的各个部分。
存储器可用于存储计算机程序和/或模块,处理器通过运行或执行存储在存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现终端设备的各种功能。存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(SmartMedia Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
终端设备集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,计算机程序包括计算机程序代码,计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。计算机可读介质可以包括:能够携带计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的***,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的***、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,上述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
当然,上述的方案只是本发明优选的实施方案,实际应用是还可以有更多的变化,例如,调用的原生应用程序的改变、渲染生成目标应用程序页面的具体步骤的改变,这样的改变并不影响本发明的实施,也应该包括在本发明的保护范围内。
Claims (9)
1.一种终端设备控制方法,其特征在于,包括:
接收来自前端页面的访问请求信息,所述访问请求信息中包含有访问路径信息以及操作信息,所述访问路径信息为终端设备的本地服务器的访问路径信息;
根据所述访问请求信息中的所述访问路径信息,向所述本地服务器发送所述操作信息;
对所述操作信息进行解析获取所述操作信息对应的原生应用程序及操作,执行对应于所述原生应用程序的所述操作;
其中,向所述本地服务器发送所述操作信息包括:向所述本地服务器预设的数据传输端口发送所述操作信息;所述本地服务器接收到预设的数据传输端口的端口号后,将所述端口号映射至目标端口号,使用所述目标端口号对应的数据传输端口接收所述操作信息,其中,所述本地服务器设置在权限值低于预设阈值的进程中。
2.根据权利要求1所述的终端设备控制方法,其特征在于,所述访问路径信息为设置于终端设备的本地服务器的地址信息;
根据所述访问请求信息中的所述访问路径信息,向所述本地服务器发送所述操作信息包括:根据所述地址信息向所述本地服务器发送所述操作信息。
3.根据权利要求1所述的终端设备控制方法,其特征在于,所述访问路径信息为设置于终端设备的本地服务器的预设域名;
根据所述访问请求信息中的所述访问路径信息,向所述本地服务器发送所述操作信息包括:对所述预设域名进行映射获取映射后的地址信息,所述地址信息为所述本地服务器的地址信息,并根据所述地址信息向所述本地服务器发送所述操作信息。
4.根据权利要求1至3任一项所述的终端设备控制方法,其特征在于,所述操作包括:向所述原生应用程序发送信息或者调用所述原生应用程序。
5.根据权利要求1至3任一项所述的终端设备控制方法,其特征在于,所述原生应用程序为应用程序框架,所述操作包括:向所述应用程序框架中的目标应用程序发送信息或者调用所述应用程序框架中的目标应用程序。
6.根据权利要求5所述的终端设备控制方法,其特征在于,执行对应于所述原生应用程序的所述操作前,还执行:判断所述应用程序框架是否运行过所述目标应用程序,如未运行过,则获取所述目标应用程序的配置文件,所述应用程序框架对所述配置文件进行解析并运行所述目标应用程序。
7.根据权利要求6所述的终端设备控制方法,其特征在于,调用所述应用程序框架中的目标应用程序包括调用所述目标应用程序的目标页面;
所述应用程序框架对所述配置文件进行解析并运行所述目标应用程序包括:从所述配置文件中获取所述目标页面的描述信息,并且根据所述描述信息渲染生成所述目标页面。
8.一种终端设备,其特征在于,所述终端设备包括处理器,所述处理器用于执行存储器中存储的计算机程序时实现如权利要求1至6中任意一项所述终端设备控制方法的步骤。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于:所述计算机程序被处理器执行时实现如权利要求1至6中任意一项所述终端设备控制方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810796585.0A CN109391676B (zh) | 2018-07-19 | 2018-07-19 | 终端设备控制方法、终端设备及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810796585.0A CN109391676B (zh) | 2018-07-19 | 2018-07-19 | 终端设备控制方法、终端设备及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109391676A CN109391676A (zh) | 2019-02-26 |
CN109391676B true CN109391676B (zh) | 2020-12-18 |
Family
ID=65416561
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810796585.0A Active CN109391676B (zh) | 2018-07-19 | 2018-07-19 | 终端设备控制方法、终端设备及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109391676B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110008668B (zh) * | 2019-03-21 | 2023-09-19 | 北京小米移动软件有限公司 | 一种数据处理方法、装置及存储介质 |
CN112445414B (zh) * | 2019-08-30 | 2023-02-03 | 青岛海信移动通信技术股份有限公司 | 数据处理方法及装置 |
CN110955452B (zh) * | 2019-09-05 | 2021-03-05 | 华为技术有限公司 | 一种非侵入式交互方法及电子设备 |
CN110764775A (zh) * | 2019-09-06 | 2020-02-07 | 平安普惠企业管理有限公司 | 一种应用程序整合的方法、装置、存储介质和服务器 |
CN110865870B (zh) * | 2019-11-14 | 2022-08-12 | 北京西山居互动娱乐科技有限公司 | 一种基于钩子技术的应用调用方法及装置 |
CN111737624B (zh) * | 2020-06-28 | 2023-04-18 | 杭州迪普科技股份有限公司 | 页面的重定向防护方法、装置及电子设备 |
CN112486796B (zh) * | 2020-12-30 | 2023-07-11 | 智道网联科技(北京)有限公司 | 一种采集车载智能终端信息的方法和装置 |
CN114154099B (zh) * | 2021-12-07 | 2024-07-09 | 北京达佳互联信息技术有限公司 | 路由信息处理方法、装置、设备及存储介质 |
CN115510429B (zh) * | 2022-11-21 | 2023-04-14 | 统信软件技术有限公司 | 沙箱应用访问权限的管控方法、计算设备及可读存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103106102A (zh) * | 2013-01-14 | 2013-05-15 | 百度在线网络技术(北京)有限公司 | 一种web应用程序的运行方法及移动终端 |
CN105718313A (zh) * | 2016-01-22 | 2016-06-29 | 北京京东尚科信息技术有限公司 | 应用操作方法和装置 |
CN107102853A (zh) * | 2017-03-26 | 2017-08-29 | 安徽继远软件有限公司 | 一种定制化移动操作***兼容Android应用的方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8606923B2 (en) * | 2010-09-15 | 2013-12-10 | Core Mobile Networks, Inc. | System and method for real time delivery of context based content from the cloud to mobile devices |
US9600351B2 (en) * | 2012-12-14 | 2017-03-21 | Microsoft Technology Licensing, Llc | Inversion-of-control component service models for virtual environments |
CN104102540B (zh) * | 2014-06-30 | 2017-08-25 | 上海卓悠网络科技有限公司 | 一种运行进程的管理方法及移动终端 |
CN106445518A (zh) * | 2016-09-22 | 2017-02-22 | 中国传媒大学 | 一种跨平台移动终端应用程序开发方法及*** |
-
2018
- 2018-07-19 CN CN201810796585.0A patent/CN109391676B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103106102A (zh) * | 2013-01-14 | 2013-05-15 | 百度在线网络技术(北京)有限公司 | 一种web应用程序的运行方法及移动终端 |
CN105718313A (zh) * | 2016-01-22 | 2016-06-29 | 北京京东尚科信息技术有限公司 | 应用操作方法和装置 |
CN107102853A (zh) * | 2017-03-26 | 2017-08-29 | 安徽继远软件有限公司 | 一种定制化移动操作***兼容Android应用的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN109391676A (zh) | 2019-02-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109391676B (zh) | 终端设备控制方法、终端设备及计算机可读存储介质 | |
CN110688232B (zh) | 应用程序调用方法、终端设备及计算机可读存储介质 | |
CN108536524B (zh) | 资源更新方法、装置、终端及存储介质 | |
US9563613B1 (en) | System and method for dynamic portable document file generation | |
Jeon et al. | Dr. Android and Mr. Hide: fine-grained permissions in android applications | |
US9098368B1 (en) | Loading branded media outside system partition | |
CN110990075B (zh) | 快应用的启动方法、装置、设备及存储介质 | |
CN102073507B (zh) | 微件Widget调用的方法、装置和*** | |
US10817282B2 (en) | Application configuration file generation method and apparatus, application page display method and apparatus and storage medium | |
CN110727469B (zh) | 终端设备控制方法及装置、应用程序配置文件的封装方法、终端设备及计算机可读存储介质 | |
EP3197122B1 (en) | Method of forwarding in-application traffic on smart mobile terminal | |
CN107273126B (zh) | 应用开发方法和装置 | |
JP7106001B2 (ja) | サブアプリケーション開発方法、装置、コンピュータ機器、並びにコンピュータプログラム | |
US8990929B2 (en) | Auditing application activities | |
WO2020024989A1 (zh) | 负一屏加载方法、装置、终端及计算机可读存储介质 | |
CN108519922B (zh) | 信息推送方法及装置、终端设备及计算机可读存储介质 | |
CN117149469B (zh) | H5页面调用宿主端功能的方法、装置、设备及存储介质 | |
CN111443903A (zh) | 软件开发文件获取方法及装置、电子设备、存储介质 | |
CN110618874B (zh) | 一种终端设备控制方法及装置、终端设备及计算机可读存储介质 | |
CN110609751B (zh) | 一种终端设备控制方法及装置、终端设备及计算机可读存储介质 | |
CN112860300A (zh) | 分布式sdk热更新处理方法、应用服务器集群 | |
KR101077338B1 (ko) | 컨텐츠 다운로드 시스템 및 그 방법 | |
CN113065131A (zh) | 插件的安全控制方法、装置和存储介质 | |
KR20190059168A (ko) | 웹페이지와 응용프로그램을 연동하는 미들웨어장치 | |
CN116774949B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |