CN115080186A - 小程序加载方法及相关装置 - Google Patents
小程序加载方法及相关装置 Download PDFInfo
- Publication number
- CN115080186A CN115080186A CN202210747941.6A CN202210747941A CN115080186A CN 115080186 A CN115080186 A CN 115080186A CN 202210747941 A CN202210747941 A CN 202210747941A CN 115080186 A CN115080186 A CN 115080186A
- Authority
- CN
- China
- Prior art keywords
- applet
- page
- file
- loading
- message
- 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.)
- Pending
Links
Images
Classifications
-
- 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/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45504—Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
- G06F9/45529—Embedded in an application, e.g. JavaScript in a Web browser
-
- 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/546—Message passing systems or structures, e.g. queues
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/541—Client-server
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/545—Gui
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/549—Remote execution
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开小程序加载方法及相关装置,可以通过获得小程序打开指令;根据小程序打开指令,查询预设的相对路径中是否已存储有相应的service.js文件;若已存储有,则通过第一webView控件打开service.js文件,并注入Publish方法和Invoke方法;在成功打开service.js文件后,则调用JSCore.publish模块,使得JSCore.publish模块发出相应的第一消息;在收到第一消息后,加载相应的Page模块,从而展示Page模块对应的小程序H5页面。本发明可以基于自己构建的小程序平台,加载并展示相应的小程序H5页面,从而将自己平台的流量接入至小程序,用户体验较好。
Description
技术领域
本发明涉及小程序领域,特别涉及一种小程序加载方法及相关装置。
背景技术
小程序平台的构建,有利于降低开发成本,可以将独立的功能或者业务,由小程序展示在应用内。
目前的小程序平台限制太多,不利于用户接入自己平台的流量,用户体检较差。
发明内容
鉴于上述问题,本发明提供一种克服上述问题或者至少部分地解决上述问题的一种小程序加载方法及相关装置。
第一方面,一种小程序加载方法,包括:
获得小程序打开指令;
根据所述小程序打开指令,查询预设的相对路径中是否已存储有相应的service.js文件;
若已存储有所述service.js文件,则通过第一webView控件打开所述service.js文件,并向所述第一webView控件注入Publish方法和Invoke方法;
在所述第一webView控件成功打开所述service.js文件后,则调用JSCore.publish模块,使得所述JSCore.publish模块发出相应的第一消息;
在收到所述第一消息后,加载相应的Page模块,从而展示所述Page模块对应的小程序H5页面。
结合第一方面,在某些可选的实施方式中,在所述获得小程序打开指令之前,所述方法还包括:
加载预先存储在本地的framework资源包;
解压所述framework资源包得到所述service.js文件,并存储至所述相对路径;
通过schema获取到的应用标识appid,并根据所述appid向服务端请求获得相应的小程序信息appInfo;
通过预先建立的加密算法,对所述appInfo进行加密得到相应的小程序包下载路径;
基于所述小程序包下载路径,从所述服务端下载第三方开发的离线包。
结合上一个实施方式,在某些可选的实施方式中,所述在收到所述第一消息后,加载相应的Page模块,从而展示所述Page模块对应的小程序H5页面,包括:
在收到所述第一消息后,通过第二webView控件打开所述离线包中的Page模块的js文件,从而加载并展示所述小程序H5页面。
结合上一个实施方式,在某些可选的实施方式中,所述在收到所述第一消息后,通过第二webView控件打开所述离线包中的Page模块的js文件,从而加载并展示所述小程序H5页面,包括:
在收到所述第一消息后,根据所述appInfo构建设置所述小程序H5页面的页面内容和加载路径;
通过所述第二webView控件加载所述加载路径对应的所述小程序H5页面并展示;
向所述第二webView控件中注入所述Publish方法和所述Invoke方法。
结合上一个实施方式,在某些可选的实施方式中,在所述通过所述第二webView控件加载所述加载路径对应的所述小程序H5页面并展示之后,所述方法还包括:
生成onAppRoute消息;
调用serviceJsBridege.subscribe方法将所述onAppRoute消息发送至所述服务端。
结合上一个实施方式,在某些可选的实施方式中,在所述调用serviceJsBridege.subscribe方法将所述onAppRoute消息发送至所述服务端之后,所述方法还包括:
获得所述服务端通过JSCore.publish方法发送的结果;
调用pageJSBridge.subscribe方法将所述结果的json参数发送至所述小程序H5页面。
可选的,在某些可选的实施方式中,在所述调用serviceJsBridege.subscribe方法将所述onAppRoute消息发送至所述服务端之后,所述方法还包括:
获得所述小程序H5页面通过所述pageJSBridge.subscribe方法发送的第二消息;
调用所述JSCore.publish方法将所述第二消息发送至所述服务端。
第二方面,一种小程序加载装置,包括:指令获得单元、文件查询单元、文件打开单元、第一模块调用单元和页面加载单元;
所述指令获得单元,用于获得小程序打开指令;
所述文件查询单元,用于根据所述小程序打开指令,查询预设的相对路径中是否已存储有相应的service.js文件;
所述文件打开单元,用于若已存储有所述service.js文件,则通过第一webView控件打开所述service.js文件,并向所述第一webView控件注入Publish方法和Invoke方法;
所述第一模块调用单元,用于在所述第一webView控件成功打开所述service.js文件后,则调用JSCore.publish模块,使得所述JSCore.publish模块发出相应的第一消息;
所述页面加载单元,用于在收到所述第一消息后,加载相应的Page模块,从而展示所述Page模块对应的小程序H5页面。
第三方面,一种计算机可读存储介质,其上存储有程序,所述程序被处理器执行时实现上述任一项所述的小程序加载方法。
第四方面,一种电子设备,所述电子设备包括至少一个处理器、以及与所述处理器连接的至少一个存储器、总线;其中,所述处理器、所述存储器通过所述总线完成相互间的通信;所述处理器用于调用所述存储器中的程序指令,以执行上述任一项所述的小程序加载方法。
借由上述技术方案,本发明提供的一种小程序加载方法及相关装置,可以通过获得小程序打开指令;根据所述小程序打开指令,查询预设的相对路径中是否已存储有相应的service.js文件;若已存储有所述service.js文件,则通过第一webView控件打开所述service.js文件,并向所述第一webView控件注入Publish方法和Invoke方法;在所述第一webView控件成功打开所述service.js文件后,则调用JSCore.publish模块,使得所述JSCore.publish模块发出相应的第一消息;在收到所述第一消息后,加载相应的Page模块,从而展示所述Page模块对应的小程序H5页面。由此可以看出,本发明可以基于自己构建的小程序平台,加载并展示相应的小程序H5页面,从而将自己平台的流量接入至小程序,用户体验较好。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了本发明提供的第一种小程序加载方法的流程图;
图2示出了本发明提供的第二种小程序加载方法的流程图;
图3示出了本发明提供的一种小程序加载装置的结构示意图;
图4示出了本发明提供的一种电子设备的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
如图1所示,本发明提供了一种小程序加载方法,包括:S100、S200、S300、S400和S500;
S100、获得小程序打开指令;
可选的,本发明可以构建自己的小程序平台,不适用现有的小程序平台。在收到小程序打开指令后,本发明可以基于自身的规则,加载相应的小程序H5页面,从而将自己平台的用户流量引入到相应的小程序,用户体验较好。
可选的,本发明对于获得小程序打开指令的方式不做限制,任何可行的方式均属于本发明的保护范围。例如,以“芒果TVApp”为例,用户可以在“芒果TVApp”中点击触发打开小程序,或者通过外部的schema打开小程序,本发明对此不做限制。
可选的,在获得小程序打开指令,本发明可以预先做好一些准备工作。例如,如图2所示,结合图1所示的实施方式,在某些可选的实施方式中,在所述S100之前,所述方法还包括:步骤1.1、步骤1.2、步骤1.3、步骤1.4和步骤1.5;
步骤1.1、加载预先存储在本地的framework资源包;
可选的,framework资源包属于本领域的公知概念,本发明对此不做过多描述,具体请参见本领域的相关说明。需要说明的是,结合本发明的场景,本发明的framework资源包可以理解是一个压缩文件,里面包含了一些控制和管理的js文件,这样才能保证小程序加载过成中,遵守相关协议,如此才能正常运行。
步骤1.2、解压所述framework资源包得到所述service.js文件,并存储至所述相对路径;
可选的,service.js文件属于本领域的公知概念,本发明对此不做过多描述,具体请参见本领域的相关说明。需要说明的是,结合本发明的场景,本发明所说的service.js文件可以是一个由javascript语言编写的控制类,所有的操作都要先通过该文件的审核和管理。
可选的,本发明可以基于现有的解压技术解压framework资源包,本发明对此不做限制。
步骤1.3、通过schema获取到的应用标识appid,并根据所述appid向服务端请求获得相应的小程序信息appInfo;
可选的,schema属于本领域的公知概念,本发明对此不做过多描述,具体请参见本领域的相关说明。需要说明的是,结合本发明的场景,本发明的schema就是跳转到应用的一段地址,可以是提前预设好的。该地址可以是具有特殊标识的地址,这样才能准确跳转到相应的应用中。
可选的,小程序信息appInfo可以与应用标识appid对应存储在服务端,本发明可以基于应用标识appid向服务端请求获取相应的小程序信息appInfo,从而获得相应的小程序资源,本发明对此不做限制。
可选的。本发明所说的小程序信息appInfo指的是应用资料的合集,比如应用名称,下载地址和版本等消息的集合体。
步骤1.4、通过预先建立的加密算法,对所述appInfo进行加密得到相应的小程序包下载路径;
可选的,本发明可以预先在本地建立相应的加密算法,然后使用加密算法进行加密,从而防止其他人通过下载链接盗用本发明的小程序资源包中的具体文件。因此,本发明可以对链接拼接固定参数,例如采用MD5等加密方式。
步骤1.5、基于所述小程序包下载路径,从所述服务端下载第三方开发的离线包。
可选的,第三方作为开发方,可以将开发的离线包上传到服务端,以便于客户端需要下载离线包时直接从服务端下载。需要说明的是,本发明所说的离线包指的是第三方开发按照开发文档的要求完成的应用文件的zip压缩包,里面可以是一些JavaScript文件和图片资源等东西。
S200、根据所述小程序打开指令,查询预设的相对路径中是否已存储有相应的service.js文件;
若已存储有所述service.js文件,则执行S300;
可选的,如前所述,在上述步骤1.2中可以将service.js文件存储至相对路径。在S200中可以判断该相对路径中是否已存储有相应的service.js文件,若存储有,则说明前述准备工作已做好,可以往下进行。
若相对路径中未存储有所述service.js文件,则说明前述准备工作还没做好。这种情况下,本发明需要返回执行上述准备工作,直到相对路径中存储有所述service.js文件为止。
S300、通过第一webView控件打开所述service.js文件,并向所述第一webView控件注入Publish方法和Invoke方法;
可选的,webView控件、Publish方法和Invoke方法均属于本领域的公知概念,本发明对此不做过多描述,具体请参见本领域的相关说明。
需要说明的是,上述service.js文件是管理文件加载的,不是实际展示的H5界面。因此,本发明需要第一webView控件(可以理解为浏览器控件)打开service.js文件。
可选的,Pulish方法是发布通知的方法,两个H5界面之间互相通过Publish方法,把消息传给原生组件,然后原生组件处理转发给对方。Invoke方法是调用方法,例如Service模块,需要调用原生的相机等能力,就通过Invoke方法来通知原生启用能力,向第一webView控件注入这两个方法,以便于后续发布消息和调用原生能力。
S400、在所述第一webView控件成功打开所述service.js文件后,则调用JSCore.publish模块,使得所述JSCore.publish模块发出相应的第一消息;
可选的,JSCore.publish模块属于本领域的公知概念,本发明对此不做过多描述,具体请参见本领域的相关说明。需要说明的是,本发明的JSCore.publish模块可以用于通过调用JSCore.publish方法,沟通Service模块和Page模块,然后响应对应的事件。
可选的,本发明对于第一消息所包括的内容不做限制,第一消息可以理解为指令,即通过第一消息发出相应的指令。需要说明的是,第一消息可以是“OnServiceReady”,即,服务模块加载完成,相对应的本地准备工作都完成,可以开始加载小程序。
S500、在收到所述第一消息后,加载相应的Page模块,从而展示所述Page模块对应的小程序H5页面。
可选的,Page模块模块属于本领域的公知概念,本发明对此不做过多描述,具体请参见本领域的相关说明。需要说明的是,本发明的Service模块指的是管理模块,上文中,framework压缩包的内容,通过解压zip包,然后让H5界面来加载,形成了管理模块,也就是Service模块。
可选的,在收到第一消息后,表明当前Service模块已经准备好了,接下来可以加载Page模块。具体加载方式可以是客户端开启一个webView控件来加载Page模块,本发明对此不做限制。
可选的,Page模块作为客户端的模块,当加载完毕之后。Page模块和服务端的Service模块之间可以采用Publish-Subscribe模式进行通信。即,Page模块和Service模块可以通过Native作为中转站,来处理服务端和前端两个端口的消息传递,从而展示对应的小程序H5页面。
需要说明的是,上述Publish-Subscribe和Native等概念均属于本领域的公知概念,本发明对此不做过多描述,具体请参见本领域的相关说明。
例如,结合上一个实施方式,在某些可选的实施方式中,所述S500,包括:步骤2.1;
步骤2.1、在收到所述第一消息后,通过第二webView控件打开所述离线包中的Page模块的js文件,从而加载并展示所述小程序H5页面。
可选的,本发明所说的js文件指的是通过javascript语言来写的前端代码文件,文件后缀为.js,所以统称为js文件,就是代码内容体。
具体的,结合上一个实施方式,在某些可选的实施方式中,所述步骤2.1,包括:步骤3.1、步骤3.2和步骤3.3;
步骤3.1、在收到所述第一消息后,根据所述appInfo构建设置所述小程序H5页面的页面内容和加载路径;
可选的,本发明可以通过appInfo中的数据来设置小程序H5页面。包括:标题、所有页面的相对路径,以及首次加载的页面的路径。例如,appInfo记录:手机客户端的index.html作为首页页面,则手机客户端可以通过前述加密方案拼接好index.html本地的完整路径,然后通过后续的第二webView控件加载index.html。此处的index.html对应的就是本发明所说的小程序H5页面。
步骤3.2、通过所述第二webView控件加载所述加载路径对应的所述小程序H5页面并展示;
步骤3.3、向所述第二webView控件中注入所述Publish方法和所述Invoke方法。
可选的,本发明可以通过原生客户端提供的api方法,即addScriptMessageHandle方法向第二webView控件中注入所述Publish方法和所述Invoke方法,本发明对此不做限制。
可选的,Page模块在展示小程序H5页面之后,可以向服务端发送相应的信息,以通知服务端。即,结合上一个实施方式,在某些可选的实施方式中,在所述步骤3.2之后,所述方法还包括:步骤4.1和步骤4.2;
步骤4.1、生成onAppRoute消息;
步骤4.2、调用serviceJsBridege.subscribe方法将所述onAppRoute消息发送至所述服务端。
可选的,onAppRoute消息是一种具体的通讯消息名称,可以包括:给小程序H5页面定义一个viewId(viewId是协商好的规则,保证每次生成的viewId不一致即可)、地址路径和参数等。然后手机客户端可以调用serviceJsBridege.subscribe方法将消息传递给service模块,这样就完成了Page模块与Service模块之间的绑定,本发明对此不做限制。
可选的,在完成Page模块与Service模块之间的绑定之后,服务端还可以向客户端的小程序发送消息。即,结合上一个实施方式,在某些可选的实施方式中,在所述步骤4.2之后,所述方法还包括:步骤5.1和步骤5.2;
步骤5.1、获得所述服务端通过JSCore.publish方法发送的结果;
步骤5.2、调用pageJSBridge.subscribe方法将所述结果的json参数发送至所述小程序H5页面。
可选的,服务端在收到onAppRoute消息之后,Service模块可以将结果通过JSCore.publish方法传递到手机客户端,手机客户端再通过viewId找到当前的小程序H5页面,然后Nativce调用pageJSBridge.subscribe将结果传递给小程序H5页面,到此一次完整的服务端到客户端的消息传递就完成了。
可选的,本发明所说的结果可以是json串,指的是Service模块接收到消息后,对消息进行一个命令的反馈,反馈的同时携带了具体的操作命令,这个命令就是一段json串(json字符串文字)。然后客户端就根据这个命令做出响应的操作,比如跳转和弹窗等。
可选的,在某些可选的实施方式中,在所述步骤4.2之后,所述方法还包括:步骤6.1和步骤6.2;
步骤6.1、获得所述小程序H5页面通过所述pageJSBridge.subscribe方法发送的第二消息;
步骤6.2、调用所述JSCore.publish方法将所述第二消息发送至所述服务端。
可选的,小程序H5页面通过JSCore.publish给手机客户端传递消息,然后手机客户端通SeviceJSBridge.subscribe方法将消息传递到Service模块的H5页面,到此一次完整的小程序H5页面到Service模块的消息传递就完成了。
如图3所示,本发明提供了一种小程序加载装置,包括:指令获得单元100、文件查询单元200、文件打开单元300、第一模块调用单元400和页面加载单元500;
所述指令获得单元100,用于获得小程序打开指令;
所述文件查询单元200,用于根据所述小程序打开指令,查询预设的相对路径中是否已存储有相应的service.js文件;
所述文件打开单元300,用于若已存储有所述service.js文件,则通过第一webView控件打开所述service.js文件,并向所述第一webView控件注入Publish方法和Invoke方法;
所述第一模块调用单元400,用于在所述第一webView控件成功打开所述service.js文件后,则调用JSCore.publish模块,使得所述JSCore.publish模块发出相应的第一消息;
所述页面加载单元500,用于在收到所述第一消息后,加载相应的Page模块,从而展示所述Page模块对应的小程序H5页面。
结合图3所示的实施方式,在某些可选的实施方式中,所述装置还包括:资源包加载单元、资源包解压单元、小程序信息请求单元、下载路径获得单元和离线包下载单元;
所述资源包加载单元,用于在所述获得小程序打开指令之前,加载预先存储在本地的framework资源包;
所述资源包解压单元,用于解压所述framework资源包得到所述service.js文件,并存储至所述相对路径;
所述小程序信息请求单元,用于通过schema获取到的应用标识appid,并根据所述appid向服务端请求获得相应的小程序信息appInfo;
所述下载路径获得单元,用于通过预先建立的加密算法,对所述appInfo进行加密得到相应的小程序包下载路径;
所述离线包下载单元,用于基于所述小程序包下载路径,从所述服务端下载第三方开发的离线包。
结合上一个实施方式,在某些可选的实施方式中,所述页面加载单元500,包括:页面加载子单元;
所述页面加载子单元,用于在收到所述第一消息后,通过第二webView控件打开所述离线包中的Page模块的js文件,从而加载并展示所述小程序H5页面。
结合上一个实施方式,在某些可选的实施方式中,所述页面加载子单元,包括:设置子单元、展示子单元和方法注入子单元;
所述设置子单元,用于在收到所述第一消息后,根据所述appInfo构建设置所述小程序H5页面的页面内容和加载路径;
所述展示子单元,用于通过所述第二webView控件加载所述加载路径对应的所述小程序H5页面并展示;
所述方法注入子单元,用于向所述第二webView控件中注入所述Publish方法和所述Invoke方法。
结合上一个实施方式,在某些可选的实施方式中,所述装置还包括:消息生成单元和第一消息发送单元;
所述消息生成单元,用于在所述通过所述第二webView控件加载所述加载路径对应的所述小程序H5页面并展示之后,生成onAppRoute消息;
所述第一消息发送单元,用于调用serviceJsBridege.subscribe方法将所述onAppRoute消息发送至所述服务端。
结合上一个实施方式,在某些可选的实施方式中,所述装置还包括:结果获得单元和参数发送单元;
所述结果获得单元,用于在所述调用serviceJsBridege.subscribe方法将所述onAppRoute消息发送至所述服务端之后,获得所述服务端通过JSCore.publish方法发送的结果;
所述参数发送单元,用于调用pageJSBridge.subscribe方法将所述结果的json参数发送至所述小程序H5页面。
可选的,在某些可选的实施方式中,所述装置还包括:消息获得单元和第二消息发送单元;
所述消息获得单元,用于在所述调用serviceJsBridege.subscribe方法将所述onAppRoute消息发送至所述服务端之后,获得所述小程序H5页面通过所述pageJSBridge.subscribe方法发送的第二消息;
所述第二消息发送单元,用于调用所述JSCore.publish方法将所述第二消息发送至所述服务端。
本发明提供了一种计算机可读存储介质,其上存储有程序,所述程序被处理器执行时实现上述任一项所述的小程序加载方法。
如图4所示,本发明提供了一种电子设备70,所述电子设备70包括至少一个处理器701、以及与所述处理器701连接的至少一个存储器702、总线703;其中,所述处理器701、所述存储器702通过所述总线703完成相互间的通信;所述处理器701用于调用所述存储器702中的程序指令,以执行上述任一项所述的小程序加载方法。
在本申请中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (10)
1.一种小程序加载方法,其特征在于,包括:
获得小程序打开指令;
根据所述小程序打开指令,查询预设的相对路径中是否已存储有相应的service.js文件;
若已存储有所述service.js文件,则通过第一webView控件打开所述service.js文件,并向所述第一webView控件注入Publish方法和Invoke方法;
在所述第一webView控件成功打开所述service.js文件后,则调用JSCore.publish模块,使得所述JSCore.publish模块发出相应的第一消息;
在收到所述第一消息后,加载相应的Page模块,从而展示所述Page模块对应的小程序H5页面。
2.根据权利要求1所述的方法,其特征在于,在所述获得小程序打开指令之前,所述方法还包括:
加载预先存储在本地的framework资源包;
解压所述framework资源包得到所述service.js文件,并存储至所述相对路径;
通过schema获取到的应用标识appid,并根据所述appid向服务端请求获得相应的小程序信息appInfo;
通过预先建立的加密算法,对所述appInfo进行加密得到相应的小程序包下载路径;
基于所述小程序包下载路径,从所述服务端下载第三方开发的离线包。
3.根据权利要求2所述的方法,其特征在于,所述在收到所述第一消息后,加载相应的Page模块,从而展示所述Page模块对应的小程序H5页面,包括:
在收到所述第一消息后,通过第二webView控件打开所述离线包中的Page模块的js文件,从而加载并展示所述小程序H5页面。
4.根据权利要求3所述的方法,其特征在于,所述在收到所述第一消息后,通过第二webView控件打开所述离线包中的Page模块的js文件,从而加载并展示所述小程序H5页面,包括:
在收到所述第一消息后,根据所述appInfo构建设置所述小程序H5页面的页面内容和加载路径;
通过所述第二webView控件加载所述加载路径对应的所述小程序H5页面并展示;
向所述第二webView控件中注入所述Publish方法和所述Invoke方法。
5.根据权利要求4所述的方法,其特征在于,在所述通过所述第二webView控件加载所述加载路径对应的所述小程序H5页面并展示之后,所述方法还包括:
生成onAppRoute消息;
调用serviceJsBridege.subscribe方法将所述onAppRoute消息发送至所述服务端。
6.根据权利要求5所述的方法,其特征在于,在所述调用serviceJsBridege.subscribe方法将所述onAppRoute消息发送至所述服务端之后,所述方法还包括:
获得所述服务端通过JSCore.publish方法发送的结果;
调用pageJSBridge.subscribe方法将所述结果的json参数发送至所述小程序H5页面。
7.根据权利要求4所述的方法,其特征在于,在所述调用serviceJsBridege.subscribe方法将所述onAppRoute消息发送至所述服务端之后,所述方法还包括:
获得所述小程序H5页面通过所述pageJSBridge.subscribe方法发送的第二消息;
调用所述JSCore.publish方法将所述第二消息发送至所述服务端。
8.一种小程序加载装置,其特征在于,包括:指令获得单元、文件查询单元、文件打开单元、第一模块调用单元和页面加载单元;
所述指令获得单元,用于获得小程序打开指令;
所述文件查询单元,用于根据所述小程序打开指令,查询预设的相对路径中是否已存储有相应的service.js文件;
所述文件打开单元,用于若已存储有所述service.js文件,则通过第一webView控件打开所述service.js文件,并向所述第一webView控件注入Publish方法和Invoke方法;
所述第一模块调用单元,用于在所述第一webView控件成功打开所述service.js文件后,则调用JSCore.publish模块,使得所述JSCore.publish模块发出相应的第一消息;
所述页面加载单元,用于在收到所述第一消息后,加载相应的Page模块,从而展示所述Page模块对应的小程序H5页面。
9.一种计算机可读存储介质,其上存储有程序,其特征在于,所述程序被处理器执行时实现如权利要求1至7中任一项所述的小程序加载方法。
10.一种电子设备,其特征在于,所述电子设备包括至少一个处理器、以及与所述处理器连接的至少一个存储器、总线;其中,所述处理器、所述存储器通过所述总线完成相互间的通信;所述处理器用于调用所述存储器中的程序指令,以执行如权利要求1至7中任一项所述的小程序加载方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210747941.6A CN115080186A (zh) | 2022-06-29 | 2022-06-29 | 小程序加载方法及相关装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210747941.6A CN115080186A (zh) | 2022-06-29 | 2022-06-29 | 小程序加载方法及相关装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115080186A true CN115080186A (zh) | 2022-09-20 |
Family
ID=83254988
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210747941.6A Pending CN115080186A (zh) | 2022-06-29 | 2022-06-29 | 小程序加载方法及相关装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115080186A (zh) |
-
2022
- 2022-06-29 CN CN202210747941.6A patent/CN115080186A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8656417B2 (en) | Interface for telecommunication services using uniform resource identifiers | |
EP1872523B1 (en) | System and method of device-to-server registration | |
US7904421B2 (en) | Transparent virtual machine for mobile applications | |
US7920852B2 (en) | Compression of data transmitted between server and mobile device | |
US20060085517A1 (en) | Download user agent plug-in for facilitating over-the-air downloading of media objects | |
JP2004126735A (ja) | 通信システム、中継装置及び通信制御方法 | |
US9232340B2 (en) | Application store system and application development method using the application store system | |
US8387039B2 (en) | System and method for customized provisioning of application content | |
CN112565439B (zh) | 物联网通信方法与系统 | |
CN111858101B (zh) | 面向云架构系统的适配方法、装置、设备及存储介质 | |
CN111367685B (zh) | 接口调用的方法及装置、计算机设备、存储介质 | |
CN109725887B (zh) | 基于消息研发框架的数据交互方法、装置及终端设备 | |
US7086051B2 (en) | Method and apparatus for just-in-time provisioning application-related information at a communication device | |
US20140280853A1 (en) | Mobile Broadband Device and Method for Processing Mobile Broadband Service of the Mobile Broadband Device | |
JP4592694B2 (ja) | データベース同期 | |
US7860987B2 (en) | Apparatus for providing service in response to user request and method therefor | |
CN115080186A (zh) | 小程序加载方法及相关装置 | |
WO2009062396A1 (fr) | Procédé d'accès à des ressources et système d'accès à des ressources | |
CN112527377A (zh) | 应用程序生成处理方法、装置、计算机设备和存储介质 | |
EP2003853B1 (en) | Method for managing functions of a mobile phone during a browsing session, remote gateway and remote phone managing unit | |
CN116170506B (zh) | 实现移动端签章服务与阅读器松耦合对接的系统和方法 | |
KR100650803B1 (ko) | 기업용 무선 어플리케이션 서비스 시스템 및 운용방법 | |
CN112559213B (zh) | 应用通信方法、装置、计算机设备和存储介质 | |
CN112099767A (zh) | 一种应用程序的开发方法、服务器及计算机可读存储介质 | |
CN114944990A (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 |