CN109525584A - 一种构建移动端跨平台多类型应用容器的方法 - Google Patents
一种构建移动端跨平台多类型应用容器的方法 Download PDFInfo
- Publication number
- CN109525584A CN109525584A CN201811420261.3A CN201811420261A CN109525584A CN 109525584 A CN109525584 A CN 109525584A CN 201811420261 A CN201811420261 A CN 201811420261A CN 109525584 A CN109525584 A CN 109525584A
- Authority
- CN
- China
- Prior art keywords
- application
- request
- data
- small
- content provider
- 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
-
- 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/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
- G06F21/53—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/0227—Filtering policies
- H04L63/0236—Filtering by address, protocol, port number or service, e.g. IP-address or URL
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0807—Network architectures or network communication protocols for network security for authentication of entities using tickets, e.g. Kerberos
-
- 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/14—Session management
- H04L67/146—Markers for unambiguous identification of a particular session, e.g. session cookie or URL-encoding
-
- 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
-
- 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/50—Network services
- H04L67/75—Indicating network or usage conditions on the user display
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/163—In-band adaptation of TCP data exchange; In-band control procedures
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明提供了一种构建移动端跨平台多类型应用容器的方法,其特征在于在所述应用容器中配置:应用管理器、应用加载器、数据连接池、以及内容提供者,其中:应用管理器,用于小应用列表的获取、下载、编译、安装以及升级;应用加载器,用于为HTML开发的网络应用、React‑Native发的跨平台应用、Hybrid开发的混合应用和JAVA或者Object‑C开发的原生应用提供工作所需要的环境,以及加载并展示对应的应用;数据连接池,用于小应用和内容提供者之间的数据通道以及对访问内容提供者的小应用进行鉴权;内容提供者,用于为小应用提供所需要内容数据以及调用相关界面交互组件并获取数据。
Description
技术领域
本发明属于计算机网络技术领域,具体涉及一种构建移动端跨平台多类型应用容器的方法。
背景技术
随着互联网技术的的发展,移动端传统原生开发技术中开发周期长、变现慢、更新迭代成本大、难于分流和分端实现的特点成为制约软件开发的桎梏,由此移动端跨平台混合开发技术应运而生。HTML(浏览器开发)、Hybrid(混合开发)、React-Native(跨平台开发)等跨平台混合开发技术以其接近原生开发技术构建应用用户体验基础和跨平台、变现快、利于迭代分流特点逐渐成为业务端开发的主流选择。
PWA(Progressive Web App,浏览器即时应用)由Google(谷歌)在2015年提出,即在移动端利用提供的标准化框架,在网页应用中实现和原生应用相近的用户体验,渐进式网页应用。渐进式网页应用在注重用户体验方面达到了一个新的高度。这类应用既具有本机平台的功能,又能达到网页的覆盖范围,可提供稳定、快捷且引人入胜的体验。渐进式网页应用的主题将包括服务工作线程、推送等,也包括未来的API,以及付款、凭据管理、网络蓝牙等的可能性。
PWA底层为chrome(谷歌)内核,在chrome(谷歌)内核的基础上通过开放javascript(浏览器脚本语言)接口,供上层应用使用,各端通过开发js代码实现跨平台目的。该方案缺点为:1、chrome(谷歌)内核在Android和ios内核不统一,国内oem(软件系统定制)厂商不采用chrome(谷歌)内核,使PWA使用范围很小;2、该方案只支持h5应用,无法达到多类型应用兼容的目的;3、该方案只支持在线应用,无法支持离线应用。
发明内容
为克服上述现有技术的不足,本发明提供了一种构建移动端跨平台多类型应用容器的方法,为Native((原生应用)、HTML(浏览器应用)、Hybrid(混合引用)和React-Native(跨平台应用)不同类型的应用提供运行时工作环境,打通了多类型应用与容器平台数据交互通道和UI操作通道,统一了多类型应用的动态配置、更新、权限管理等问题,同时容器具有可扩展性在未来的迭代中可以支持更多类型的应用。
本发明提供了一种构建移动端跨平台多类型应用容器的方法,其特征在于在所述应用容器中配置:应用管理器、应用加载器、数据连接池、以及内容提供者,其中:
应用管理器,用于小应用列表的获取、下载、编译、安装以及升级;
应用加载器,用于为HTML开发的网络应用、React-Native发的跨平台应用、Hybrid开发的混合应用和JAVA或者Object-C开发的原生应用提供工作所需要的环境,以及加载并展示对应的应用;
数据连接池,用于小应用和内容提供者之间的数据通道以及对访问内容提供者的小应用进行鉴权;
内容提供者,用于为小应用提供所需要内容数据以及调用相关界面交互组件并获取数据。
优选地,应用管理器从后台服务器拉取小应用列表数据;应用管理器比对后台服务器与本地小应用列表,获取有更新的或者未安装的小应用;
应用管理器对更新或者未安装的小应用进行下载;
应用管理器对下载小应用安装包对比字码表进行解密解压缩,并将解压缩后真是的安装程序拷贝到宿主应用沙盒下对应目录下;
更新本地储存的小应用列表并把小应用展示在用户界面上。
优选地,应用加载器读取本地令牌配置信息;判断其应用类型;
应用加载器通过根据小应用的配置信息寻找到小应用的安装路径,再将小应用的源码文件以字节码的形式加载到内存当中;
优选地,应用加载器初始化与应用类型相对应的依赖环境;应用加载器调用与应用类型相对应的加载环境的main入口,并将小应用的字节流传入函数中获得宿主环境的view视图对象;
应用加载器将上述步骤生成的view视图对象绑定在宿主程序提供的应用窗口上展示给用户;根据用户点击的“申请开通”指令,小应用向宿主程序发出TCP请求获取用户信息。
优选地,数据连接池中的请求拦截器根据小应用发出TCP请求的目的地址判断此请求是否是发送给内容提供者的请求;
请求拦截器将不是发送给内容提供者的TCP请求原样转发给相应的地址,将发送给内容提供者的请求的连接以及请求的唯一ID进行以MAP的形式储存起来,并将请求及请求的唯一ID转发给内容提供器的接收Handler;内容提供者Handler接收数据连接池转发来的请求。
优选地,内容提供者对请求进行解析和处理,并将处理后的结果一字节流的方式返回给请求拦截器;请求拦截器通过保存在MAP中的TCP请求的唯一ID获取到请求的TCP连接,将内容提供者的数据通过连接返回小应用;
小应用收到内容提供者返回的数据包,获取到用户的相关信息;小应用根据用户的相关信息向自己的后台服务器进行数据请求完成用户相关的数据操作,并将操作结果展示在用户界面;
根据本发明的一个优选实施方式,根据用户点击关闭按钮发出的指令,容器关闭应用窗口,应用加载器调用指令销毁view视图对象并释放应用在内存中的字节流。
优选地,S201、用户通过小应用容器选择并打开应用;
S202、应用程序管理器通过网络请求向服务器获取最新应用配置列表;
S203、检查是否安装,对比网络同步最新应用配置列表与本地储存应用配置列表进行比较,检查是否有需要安装的新应用;如果判断结果为否,则执行S204;如果判断结果为是,则执行S205;
S204、下载应用安装包;
S205、检查是否有更新;如果判断结果为否,则执行S207;如果判断结果为是,则执行S204;
S206、安装应用程序包;
S207、更新应用配置储存。
优选地,S301,用户在小应用容器中打开应用;
S302,读取应用程序信息;
S303,根据读取到应用程序类型,选择相应的加载器加载应用数据文件;当判断应用类型为NATIVE时,执行S304;当判断应用类型为HTML时,执行S305;当判断应用类型为HYBRID时,执行S306;当判断应用类型为REACT-NATIVE时,执行S307;
S304,读取跳转标示,NATIVE应用通过特定的标示判断需要跳转的用户界面;
S305,读取HTML网页,读取安装文件中的数据内容为HTML网页源代码字节流;
S306,读取JAVASCRIPT代码,读取安装文件中的数据内容为JAVASCRIPT源代码字节流;
S307,加载REACT-NATIVE字节流:读取安装文件中的数据内容为混合开发字节流;
S308,CHROME谷歌浏览器内核渲染;
S309,REACT-NATIVE(混合开发)加载器渲染;
S310,渲染到界面;
S311,将渲染后的界面展示到前台。
优选地,S401,用户操作小应用;
S402,进行数据请求;
S403,请求拦截器拦截小应用发出的网络请求;筛选出和内容提供者交互的特定网络请求转发给请求转发器;当网络请求为HTML类型时,执行S404;当网络请求为REACT-NATIVE和NATIVE类型时,执行S405;
S404,CHROME内核网络请求拦截器通过CHROME内核定制,拦截HTML发出的网络请求;
S405,通用请求拦截器;为REACT-NATIVE和NATIVE实现同一的网络请求库,在网络请求库中拦截特定的数据交互网络请求;
S406,本地网络请求网关接收和转发请求拦截器、内容提供者和权限管理模块的请求;
S407,权限管理;小应用和内容提供者进行数据交互,需要获得用户权限许可,从数据库或者界面交互获取许可结果,对请求进行转发处理;如用户许可继续,则执行S408,将请求投递给内容提供者,如用户拒绝,则执行S406,直接返回给本地网关权限不足;
S408,内容提供者为小应用提供数据;
S409,小程序获取数据:本地网关将权限管理模块或者内容提供者返回的数据返回给小程序。
优选地,S501,接收数据连接池转发来的小应用的数据请求;
S502,判断是否包含特定请求标示,如果判断结果为是,则执行S503;如果判断结果为否,则执行S508;
S503,请求分发;请求分为界面交互和数据请求两种类型,分发给不同的处理器;
S504,界面操作,根据请求内容执行特定的界面操作供用户进行输入或者选择动作;
S505,后台请求队列,将数据类型的请求放置在请求队列中供工作线程逐步消费;
S506,判断请求是否合法,如果判断结果为是,则执行S507;如果判断结果为否,则执行S508;
S507,获取数据内容;
S508,将用户交互后界面操作的结果用数据的形式回传给本地网关;
S509,本地网关将内容提供者处理后回传的数据通过网络协议数据包的方式发送给小应用;
S510,返回给小应用;接收本地网关发送的网络协议数据包,进行后续的业务流程。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,并可依照说明书的内容予以实施,以下以本发明的较佳实施例并配合附图详细说明如后。
附图说明
图1示出了根据本发明的一个实施例的移动端跨平台多类型应用容器的示意图;
图2示出了根据本发明的一个实施例的应用管理器的实现流程图;
图3示出了根据本发明的一个实施例的应用加载器的实现流程图;
图4示出了根据本发明的一个实施例的数据连接池的实现流程图;
图5示出了根据本发明的一个实施例的内容提供者的实现流程图。
具体实施方式
为更进一步阐述本发明为达成预定发明目的所采取的技术手段及功效,以下结合附图及较佳实施例,对依据本发明提出的构建移动端跨平台多类型应用容器的方法其具体实施方式、特征及其功效,详细说明如后。在下述说明中,不同的“一实施例”或“实施例”指的不一定是同一实施例。此外,一或多个实施例中的特定特征、结构、或特点可由任何合适形式组合。
本申请中使用的部分缩略语以及术语如下:
移动端:搭载Android或ios操作系统可联网的智能手持终端设备。
跨平台:基于移动端Android或ios操作系统的一种通用性技术解决方案。
Hybrid-App:混合模式移动应用,是指介于web-app、native-app这两者之间的app,兼具native-app良好用户交互体验的优势和web-app跨平台开发的优势”。
React-Native:React Native(简称RN)是Facebook于2015年4月开源的跨平台移动应用开发框架,是Facebook早先开源的JS框架React在原生移动应用平台的衍生产物,目前支持iOS和安卓两大平台。
Native-App:使用Android或ios操作系统原生开发语言开发的原生应用。
Chrome内核:由Google主导的浏览器内核,支持windows,mac,ios,Android操作系统。
xla:xinge-lieta-app缩写,应用容器识别应用安装包文件名称后缀的缩写。
动态库:使用C/C++开发运行在Android或者ios库,在Android系统上变现为.so后缀的文件,在ios系统表现为.a后缀的文件。
在本发明的一个具体实施方式中,移动端跨平台多类型应用容器中包含应用管理器、应用加载器、数据连接池、以及内容提供者;其中,应用管理器,用于小应用列表的获取、下载、编译、安装以及升级;应用加载器,用于为HTML开发的网络应用、React-Native(跨平台开发语言)开发的跨平台应用、Hybrid(JAVASCRIPT开发语言)开发的混合应用和JAVA或者Object-C(ios编程语言)开发的原生应用提供工作所需要的环境,以及加载并展示对应的应用;数据连接池,用于小应用和内容提供者之间的数据通道以及对访问内容提供者的小应用进行鉴权;内容提供者,用于为小应用提供所需要内容数据以及调用相关UI(界面交互)组件并获取数据。
根据本发明的一个优选实施方式,应用管理器从后台服务器拉取小应用列表数据;应用管理器比对后台服务器与本地小应用列表,获取有更新的或者未安装的小应用;应用管理器对更新或者未安装的小应用进行下载;应用管理器对下载小应用安装包对比字码表进行解密解压缩,并将解压缩后真是的安装程序拷贝到宿主应用沙盒下对应目录下;更新本地储存的小应用列表并把小应用展示在用户界面上;
根据本发明的一个优选实施方式,应用加载器读取本地令牌配置信息;判断其应用类型;应用加载器通过根据小应用的配置信息寻找到小应用的安装路径,再将小应用的源码文件以字节码的形式加载到内存当中;
根据本发明的一个优选实施方式,应用加载器初始化与应用类型相对应的依赖环境;应用加载器调用与应用类型相对应的加载环境的main入口,并将小应用的字节流传入函数中获得宿主环境的view视图对象;
根据本发明的一个优选实施方式,应用加载器将上述步骤生成的view视图对象绑定在宿主程序提供的应用窗口上展示给用户;根据用户点击的“申请开通”指令,小应用向宿主程序发出TCP请求获取用户手机号,邮箱等个人信息;
根据本发明的一个优选实施方式,数据连接池中的请求拦截器根据小应用发出TCP请求的目的地址判断此请求是否是发送给内容提供者的请求;
根据本发明的一个优选实施方式,请求拦截器将不是发送给内容提供者的TCP请求原样转发给相应的地址,将发送给内容提供者的请求的连接以及请求的唯一ID进行以MAP的形式储存起来,并将请求及请求的唯一ID转发给内容提供器的接收Handler;内容提供者Handler接收数据连接池转发来的请求;
根据本发明的一个优选实施方式,内容提供者对请求进行解析和处理,并将处理后的结果一字节流的方式返回给请求拦截器;请求拦截器通过保存在MAP中的TCP请求的唯一ID获取到请求的TCP连接,将内容提供者的数据通过连接返回小应用;
根据本发明的一个优选实施方式,小应用收到内容提供者返回的数据包,获取到用户的相关信息;小应用根据用户的相关信息向自己的后台服务器进行数据请求完成用户相关的数据操作,并将操作结果展示在用户界面;
根据本发明的一个优选实施方式,根据用户点击关闭按钮发出的指令,容器关闭应用窗口,应用加载器调用指令销毁view视图对象并释放应用在内存中的字节流。
根据本发明的一个优选实施方式,所述应用类型为HTML开发网页类型应用、React-Native开发的混合类型应用,JAVASCRIPT开发的混合类型应用以及原生语言开发的本地应用。
根据本发明的一个优选实施方式,当判断小应用为React-Native开发的混合类应用时,应用加载器初始化React-Native混合应用依赖环境;
根据本发明的一个优选实施方式,当判断小应用为React-Native开发的混合类应用时,应用加载器调用React-Native加载环境的main入口,并将小应用的字节流传入函数中获得宿主环境的view视图对象。
根据本发明的一个优选实施方式,当判断小应用为React-Native开发的混合类应用时,用户点击右上角的关闭按钮,容器关闭应用窗口,应用加载器调用React-Native的destroy方法销毁view视图对象并释放应用在内存中的字节流。
现有技术中,微信的小程序和谷歌浏览器仅支持HTML开发的网页应用、安卓系统仅支持符合谷歌应用商店标准的原生语言开发的应用程序,已有方案都有一定的局限性,而本本申请支持HTML开发网页类型应用、React-Native开发的混合类型应用,JAVASCRIPT开发的混合类型应用以及原生语言开发的本地应用,为开发者提供了多种选择。本申请解决了多种类型的小应用在与内容提供者进行数据交互时候使用不同途径的问题,并且应用拦截器实现了TCP请求在未发送阶段就对请求进行拦截,保证了数据内容只在容器提供的沙盒内存环境中进行转移,避免了因为TCP传输或者JAVASCRIPT接口调用导致的安全问题。
根据本发明的一个优选实施方式,上述应用管理器的具体实现方式如图2所示:
S201、选择并打开应用;
根据本发明的一个优选实施方式,用户通过小应用容器选择并打开应用;
S202、获取应用列表;
根据本发明的一个优选实施方式,应用程序管理器通过网络请求向服务器获取最新应用配置列表;
S203、检查是否安装;如果判断结果为否,则执行S204;如果判断结果为是,则执行S205;
根据本发明的一个优选实施方式,对比网络同步最新应用配置列表与本地储存应用配置列表进行比较,检查是否有需要安装的新应用;
S204、下载应用安装包;
根据本发明的一个优选实施方式,读取应用配置中安装包网络储存地址,通过网络数据传输的方式将应用程序安装包下载到本地磁盘特定文件夹中;
S205、检查是否有更新;如果判断结果为否,则执行S207;如果判断结果为是,则执行S204;
根据本发明的一个优选实施方式,对比网络同步最新应用配置列表和本地储存应用配置列表中相同报名已安装应用的配置信息,校验是否有新的版本;
S206、安装应用程序包;
根据本发明的一个优选实施方式,通过特定的方式解压应用程序安装包XLA(Xinge-Lite-App)格式文件,对解压文件通过特定的方法进行重新编码后安装成功;
S207、更新应用配置储存;
根据本发明的一个优选实施方式,将对比网络同步最新应用配置和本地储存应用配置后新安装或者更新的应用程序配置保存在本地储存当中。
根据本发明的一个优选实施方式,上述应用加载器的具体实现方式如图3所示:
S301,用户在小应用容器中打开应用;
S302,读取应用程序信息;
根据本发明的一个优选实施方式,应用程序安装文件中有特定数据存储区域包含了应用程序类型等必要信息,应用程序加载器通过读取此段数据内容获取应用程序的具体类型;
S303,根据读取到应用程序类型,选择相应的加载器加载应用数据文件;当判断应用类型为NATIVE时,执行S304;当判断应用类型为HTML时,执行S305;当判断应用类型为HYBRID时,执行S306;当判断应用类型为REACT-NATIVE时,执行S307;
S304,读取跳转SCHEME(标示),NATIVE应用通过特定的SCHEME(标示)判断需要跳转的用户界面;
S305,读取HTML网页,读取安装文件中的数据内容为HTML(网页)源代码字节流;
S306,读取JAVASCRIPT代码,读取安装文件中的数据内容为JAVASCRIPT源代码字节流;
S307,加载REACT-NATIVE(混合开发)字节流:读取安装文件中的数据内容为(混合开发)字节流;
S308,CHROME(谷歌)浏览器内核渲染;
根据本发明的一个优选实施方式,将读取到字节流转换为UTF-8编码的字符串传递给CHROME(谷歌)浏览器内核进行渲染。
S309,REACT-NATIVE(混合开发)加载器渲染;
根据本发明的一个优选实施方式,将读取到的字节流进行编码传递给REACT-NATIVE(混合开发)加载器进行渲染。
S310,渲染到界面;
根据本发明的一个优选实施方式,将渲染后的界面控件加载到窗口界面上进行渲染。
S311,将渲染后的界面展示到前台。
根据本发明的一个优选实施方式,上述数据连接池的具体实现方式如图4所示:
S401,用户操作小应用;
S402,进行数据请求;
根据本发明的一个优选实施方式,为了兼容HTML(网络应用)、HYBRID(混合应用)、REACT-NATIVE(混合应用)和NATIVE(本地应用)多种类型,采用网络请求作为和内容提供者进行数据交互的通道;
S403,请求拦截器拦截小应用发出的网络请求;
根据本发明的一个优选实施方式,筛选出和内容提供者交互的特定网络请求转发给请求转发器;当网络请求为HTML类型时,执行S404;当网络请求为REACT-NATIVE(混合应用)和NATIVE(本地应用)类型时,执行S405;
S404,CHROME(谷歌)内核网络请求拦截器通过CHROME(谷歌)内核定制,拦截HTML发出的网络请求;
S405,通用请求拦截器;为REACT-NATIVE(混合应用)和NATIVE(本地应用)实现同一的网络请求库,在网络请求库中拦截特定的数据交互网络请求。
S406,本地网络请求网关接收和转发请求拦截器、内容提供者和权限管理模块的请求;
S407,权限管理;小应用和内容提供者进行数据交互,需要获得用户权限许可,从数据库或者UI(界面)交互获取许可结果,对请求进行转发处理;如用户许可继续,则执行S408,将请求投递给内容提供者,如用户拒绝,则执行S406,直接返回给本地网关权限不足;
S408,内容提供者为小应用提供数据;
S409,小程序获取数据:本地网关将权限管理模块或者内容提供者返回的数据返回给小程序。
根据本发明的一个优选实施方式,上述内容提供者的具体实现方式如图5所示:
S501,接收请求;
根据本发明的一个优选实施方式,接收数据连接池转发来的小应用的数据请求;
S502,判断是否包含特定请求标示,如果判断结果为是,则执行S503;如果判断结果为否,则执行S508;
根据本发明的一个优选实施方式,对数据请求进行拆包解析,读取其中ACTION字段,获取请求所有执行内容,如ACTION字段可以处理则将请求内容继续向下传递,如ACTION字段不存在或无法处理则将错误结果回传给本地网关;
S503,请求分发;
根据本发明的一个优选实施方式,请求分为界面交互和数据请求两种类型,分发给不同的处理器;
S504,界面操作,根据请求内容执行特定的界面操作供用户进行输入或者选择等动作;
S505,后台请求队列,将数据类型的请求放置在请求队列中供工作线程逐步消费;
S506,判断请求是否合法,如果判断结果为是,则执行S507;如果判断结果为否,则执行S508;
根据本发明的一个优选实施方式,根据不同的请求ACTION:校验请求中包含的元数据是否符合规定,如符合继续向下传递,如不符合则将错误结果回传给本地网关;
S507,获取数据内容;
根据本发明的一个优选实施方式,根据不同的请求ACTION:从数据库或者其他储存中获取请求所需要的相关数据并回传给本地网关;
S508,将用户交互后界面操作的结果用数据的形式回传给本地网关;
S509,本地网关将内容提供者处理后回传的数据通过网络协议数据包的方式发送给小应用;
S510,返回给小应用;
根据本发明的一个优选实施方式,接收本地网关发送的网络协议数据包,进行后续的业务流程。
以上所述,仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制,虽然本发明已以较佳实施例揭露如上,然而并非用以限定本发明,任何熟悉本专业的技术人员,在不脱离本发明技术方案范围内,当可利用上述揭示的技术内容作出些许更动或修饰为等同变化的等效实施例,但凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与修饰,均仍属于本发明技术方案的范围内。
Claims (10)
1.一种构建移动端跨平台多类型应用容器的方法,其特征在于在所述应用容器中配置:应用管理器、应用加载器、数据连接池、以及内容提供者,其中:
应用管理器,用于小应用列表的获取、下载、编译、安装以及升级;
应用加载器,用于为HTML开发的网络应用、React-Native发的跨平台应用、Hybrid开发的混合应用和JAVA或者Object-C开发的原生应用提供工作所需要的环境,以及加载并展示对应的应用;
数据连接池,用于小应用和内容提供者之间的数据通道以及对访问内容提供者的小应用进行鉴权;
内容提供者,用于为小应用提供所需要内容数据以及调用相关界面交互组件并获取数据。
2.根据权利要求1所述的构建移动端跨平台多类型应用容器的方法,其特征在于:
应用管理器从后台服务器拉取小应用列表数据;应用管理器比对后台服务器与本地小应用列表,获取有更新的或者未安装的小应用;
应用管理器对更新或者未安装的小应用进行下载;
应用管理器对下载小应用安装包对比字码表进行解密解压缩,并将解压缩后真是的安装程序拷贝到宿主应用沙盒下对应目录下;
更新本地储存的小应用列表并把小应用展示在用户界面上。
3.根据权利要求1或2所述的构建移动端跨平台多类型应用容器的方法,其特征在于:
应用加载器读取本地令牌配置信息;判断其应用类型;
应用加载器通过根据小应用的配置信息寻找到小应用的安装路径,再将小应用的源码文件以字节码的形式加载到内存当中。
4.根据权利要求1-3任一所述的构建移动端跨平台多类型应用容器的方法,其特征在于:
应用加载器初始化与应用类型相对应的依赖环境;应用加载器调用与应用类型相对应的加载环境的main入口,并将小应用的字节流传入函数中获得宿主环境的view视图对象;
应用加载器将上述步骤生成的view视图对象绑定在宿主程序提供的应用窗口上展示给用户;根据用户点击的“申请开通”指令,小应用向宿主程序发出TCP请求获取用户信息。
5.根据权利要求1-4任一所述的构建移动端跨平台多类型应用容器的方法,其特征在于:
数据连接池中的请求拦截器根据小应用发出TCP请求的目的地址判断此请求是否是发送给内容提供者的请求;
请求拦截器将不是发送给内容提供者的TCP请求原样转发给相应的地址,将发送给内容提供者的请求的连接以及请求的唯一ID进行以MAP的形式储存起来,并将请求及请求的唯一ID转发给内容提供器的接收Handler;内容提供者Handler接收数据连接池转发来的请求。
6.根据权利要求1-5任一所述的构建移动端跨平台多类型应用容器的方法,其特征在于:
内容提供者对请求进行解析和处理,并将处理后的结果一字节流的方式返回给请求拦截器;请求拦截器通过保存在MAP中的TCP请求的唯一ID获取到请求的TCP连接,将内容提供者的数据通过连接返回小应用;
小应用收到内容提供者返回的数据包,获取到用户的相关信息;小应用根据用户的相关信息向自己的后台服务器进行数据请求完成用户相关的数据操作,并将操作结果展示在用户界面;
根据用户点击关闭按钮发出的指令,容器关闭应用窗口,应用加载器调用指令销毁view视图对象并释放应用在内存中的字节流。
7.根据权利要求1-6任一所述的构建移动端跨平台多类型应用容器的方法,其特征在于,所述应用管理器的具体实现方式如下:
S201、用户通过小应用容器选择并打开应用;
S202、应用程序管理器通过网络请求向服务器获取最新应用配置列表;
S203、检查是否安装,对比网络同步最新应用配置列表与本地储存应用配置列表进行比较,检查是否有需要安装的新应用;如果判断结果为否,则执行S204;如果判断结果为是,则执行S205;
S204、下载应用安装包;
S205、检查是否有更新;如果判断结果为否,则执行S207;如果判断结果为是,则执行S204;
S206、安装应用程序包;
S207、更新应用配置储存。
8.根据权利要求1-7任一所述的构建移动端跨平台多类型应用容器的方法,其特征在于,所述应用加载器的具体实现方式如下:
S301,用户在小应用容器中打开应用;
S302,读取应用程序信息;
S303,根据读取到应用程序类型,选择相应的加载器加载应用数据文件;当判断应用类型为NATIVE时,执行S304;当判断应用类型为HTML时,执行S305;当判断应用类型为HYBRID时,执行S306;当判断应用类型为REACT-NATIVE时,执行S307;
S304,读取跳转标示,NATIVE应用通过特定的标示判断需要跳转的用户界面;
S305,读取HTML网页,读取安装文件中的数据内容为HTML网页源代码字节流;
S306,读取JAVASCRIPT代码,读取安装文件中的数据内容为JAVASCRIPT源代码字节流;
S307,加载REACT-NATIVE字节流:读取安装文件中的数据内容为混合开发字节流;
S308,CHROME谷歌浏览器内核渲染;
S309,REACT-NATIVE加载器渲染;
S310,渲染到界面;
S311,将渲染后的界面展示到前台。
9.根据权利要求1-8任一所述的构建移动端跨平台多类型应用容器的方法,其特征在于,所述数据连接池的具体实现方式如下:
S401,用户操作小应用;
S402,进行数据请求;
S403,请求拦截器拦截小应用发出的网络请求;筛选出和内容提供者交互的特定网络请求转发给请求转发器;当网络请求为HTML类型时,执行S404;当网络请求为REACT-NATIVE和NATIVE类型时,执行S405;
S404,CHROME内核网络请求拦截器通过CHROME内核定制,拦截HTML发出的网络请求;
S405,通用请求拦截器;为REACT-NATIVE和NATIVE实现同一的网络请求库,在网络请求库中拦截特定的数据交互网络请求;
S406,本地网络请求网关接收和转发请求拦截器、内容提供者和权限管理模块的请求;
S407,权限管理;小应用和内容提供者进行数据交互,需要获得用户权限许可,从数据库或者界面交互获取许可结果,对请求进行转发处理;如用户许可继续,则执行S408,将请求投递给内容提供者,如用户拒绝,则执行S406,直接返回给本地网关权限不足;
S408,内容提供者为小应用提供数据;
S409,小程序获取数据:本地网关将权限管理模块或者内容提供者返回的数据返回给小程序。
10.根据权利要求1-9任一所述的构建移动端跨平台多类型应用容器的方法,其特征在于,所述内容提供者的具体实现方式如下:
S501,接收数据连接池转发来的小应用的数据请求;
S502,判断是否包含特定请求标示,如果判断结果为是,则执行S503;如果判断结果为否,则执行S508;
S503,请求分发;请求分为界面交互和数据请求两种类型,分发给不同的处理器;
S504,界面操作,根据请求内容执行特定的界面操作供用户进行输入或者选择动作;
S505,后台请求队列,将数据类型的请求放置在请求队列中供工作线程逐步消费;
S506,判断请求是否合法,如果判断结果为是,则执行S507;如果判断结果为否,则执行S508;
S507,获取数据内容;
S508,将用户交互后界面操作的结果用数据的形式回传给本地网关;
S509,本地网关将内容提供者处理后回传的数据通过网络协议数据包的方式发送给小应用;
S510,返回给小应用;接收本地网关发送的网络协议数据包,进行后续的业务流程。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811420261.3A CN109525584B (zh) | 2018-11-26 | 2018-11-26 | 一种构建移动端跨平台多类型应用容器的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811420261.3A CN109525584B (zh) | 2018-11-26 | 2018-11-26 | 一种构建移动端跨平台多类型应用容器的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109525584A true CN109525584A (zh) | 2019-03-26 |
CN109525584B CN109525584B (zh) | 2020-12-04 |
Family
ID=65779164
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811420261.3A Active CN109525584B (zh) | 2018-11-26 | 2018-11-26 | 一种构建移动端跨平台多类型应用容器的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109525584B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110007936A (zh) * | 2019-04-16 | 2019-07-12 | 上海连尚网络科技有限公司 | 数据处理方法和装置 |
CN110175290A (zh) * | 2019-05-24 | 2019-08-27 | 竞技世界(成都)网络技术有限公司 | 一种内容推送方法及装置 |
CN110489124A (zh) * | 2019-07-12 | 2019-11-22 | 浙江口碑网络技术有限公司 | 源代码执行方法、装置、存储介质及计算机设备 |
CN112256260A (zh) * | 2020-10-30 | 2021-01-22 | 中电万维信息技术有限责任公司 | 一种基于可热插拔动态组件的可视化系统 |
CN114299647A (zh) * | 2022-01-27 | 2022-04-08 | 支付宝(杭州)信息技术有限公司 | 基于小程序的无感入车方法和系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103324470A (zh) * | 2012-03-21 | 2013-09-25 | 阿里巴巴集团控股有限公司 | 一种Web系统生成的方法和装置 |
CN104321745A (zh) * | 2012-02-07 | 2015-01-28 | 泰利瑞克股份公司 | 用于软件应用程序的跨平台开发的环境及方法 |
CN105528220A (zh) * | 2014-09-28 | 2016-04-27 | 腾讯科技(深圳)有限公司 | 加载动态共享对象的方法和装置 |
US20170118300A1 (en) * | 2015-10-22 | 2017-04-27 | Oracle International Corporation | System and method for providing distributed caching in a transactional processing environment |
CN108021614A (zh) * | 2017-08-18 | 2018-05-11 | 口碑(上海)信息技术有限公司 | 一种用于页面动态加载的方法及系统 |
-
2018
- 2018-11-26 CN CN201811420261.3A patent/CN109525584B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104321745A (zh) * | 2012-02-07 | 2015-01-28 | 泰利瑞克股份公司 | 用于软件应用程序的跨平台开发的环境及方法 |
CN103324470A (zh) * | 2012-03-21 | 2013-09-25 | 阿里巴巴集团控股有限公司 | 一种Web系统生成的方法和装置 |
CN105528220A (zh) * | 2014-09-28 | 2016-04-27 | 腾讯科技(深圳)有限公司 | 加载动态共享对象的方法和装置 |
US20170118300A1 (en) * | 2015-10-22 | 2017-04-27 | Oracle International Corporation | System and method for providing distributed caching in a transactional processing environment |
CN108021614A (zh) * | 2017-08-18 | 2018-05-11 | 口碑(上海)信息技术有限公司 | 一种用于页面动态加载的方法及系统 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110007936A (zh) * | 2019-04-16 | 2019-07-12 | 上海连尚网络科技有限公司 | 数据处理方法和装置 |
CN110007936B (zh) * | 2019-04-16 | 2022-04-29 | 上海连尚网络科技有限公司 | 数据处理方法和装置 |
CN110175290A (zh) * | 2019-05-24 | 2019-08-27 | 竞技世界(成都)网络技术有限公司 | 一种内容推送方法及装置 |
CN110175290B (zh) * | 2019-05-24 | 2022-03-15 | 竞技世界(成都)网络技术有限公司 | 一种内容推送方法及装置 |
CN110489124A (zh) * | 2019-07-12 | 2019-11-22 | 浙江口碑网络技术有限公司 | 源代码执行方法、装置、存储介质及计算机设备 |
CN112256260A (zh) * | 2020-10-30 | 2021-01-22 | 中电万维信息技术有限责任公司 | 一种基于可热插拔动态组件的可视化系统 |
CN112256260B (zh) * | 2020-10-30 | 2022-07-05 | 中电万维信息技术有限责任公司 | 一种基于可热插拔动态组件的可视化系统 |
CN114299647A (zh) * | 2022-01-27 | 2022-04-08 | 支付宝(杭州)信息技术有限公司 | 基于小程序的无感入车方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN109525584B (zh) | 2020-12-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109525584A (zh) | 一种构建移动端跨平台多类型应用容器的方法 | |
CN105765527B (zh) | 用于定制的软件开发包(sdk)的方法和装置 | |
CA2557111C (en) | System and method for building mixed mode execution environment for component applications | |
CN105814539B (zh) | 用于代码虚拟化和远程进程调用生成的方法和装置 | |
CN108132814A (zh) | 应用程序的页面加载方法、装置、计算机设备和存储介质 | |
CN106294372A (zh) | 应用程序页面快速访问方法及应用其的移动终端 | |
US20230308504A9 (en) | Method and system of application development for multiple device client platforms | |
US6920410B2 (en) | Systems and methods for testing a network service | |
CN106325847A (zh) | 基于iOS平台获取应用程序功能的方法和装置 | |
CN103514395B (zh) | 插件权限控制方法及系统 | |
US11640307B2 (en) | Process initiation | |
CN110213105A (zh) | 一种跨平台微应用创建方法 | |
CN108399331A (zh) | 应用进程试用方法和系统 | |
US20130263139A1 (en) | Managing execution of applications in a runtime environment | |
US20150113502A1 (en) | Method and system for encapsulation of application | |
US20120096096A1 (en) | Mobile communication terminal to provide widget expansion function using message communication, and operation method of the mobile communication terminal | |
Lettner et al. | Enabling a/b testing of native mobile applications by remote user interface exchange | |
KR101482152B1 (ko) | 페이지 연동 기능을 구비한 웹 어플리케이션 실행 장치 및 방법 | |
US20130307872A1 (en) | Integrating Remote Content with Local Content | |
US20180074663A1 (en) | Dynamic process model palette | |
KR100538801B1 (ko) | 무선 단말기 어플리케이션의 그래픽 유저 인터페이스 제공방법 시스템 및 방법 | |
KR102481249B1 (ko) | 테스트 자동화 서비스 장치 및 방법 | |
Hillier et al. | Microsoft SharePoint 2013 app development | |
US20230177192A1 (en) | Secure compartmented access infrastructure for sensitive databases | |
Riti et al. | Cloud and DevOps |
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 |