CN112925586B - 一种小程序路由方法、装置、计算机设备及存储介质 - Google Patents
一种小程序路由方法、装置、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN112925586B CN112925586B CN202110259431.XA CN202110259431A CN112925586B CN 112925586 B CN112925586 B CN 112925586B CN 202110259431 A CN202110259431 A CN 202110259431A CN 112925586 B CN112925586 B CN 112925586B
- Authority
- CN
- China
- Prior art keywords
- applet
- identification information
- routing
- parameters
- target page
- 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
- 238000000034 method Methods 0.000 title claims abstract description 33
- 230000006870 function Effects 0.000 claims abstract description 36
- 238000011068 loading method Methods 0.000 claims abstract description 19
- 238000004590 computer program Methods 0.000 claims description 13
- 238000006243 chemical reaction Methods 0.000 claims description 3
- 238000012546 transfer Methods 0.000 description 8
- 238000011161 development Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000004806 packaging method and process Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
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/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种小程序路由方法、装置、计算机设备及存储介质,在小程序初始化阶段,创建路由实例,并将所述路由实例添加为该小程序内所有页面的属性;在所述小程序的所有页面的加载方法中增加钩子函数,所述钩子函数在当前页面被加载时优先运行;在传递任意类型的参数时,调用所述路由实例将所述参数保存并转换成唯一的标识信息后,将所述标识信息传递给目标页面;当所述目标页面的钩子函数运行时,读取所述标识信息并转换成所述参数;所述目标页面的加载方法获取所述参数并使用。本发明的技术方案解决了小程序页面路由无法传递字符串之外数据类型的问题,基于此便可实现如页面结果的回传、回调上一页面的方法等复杂功能。
Description
技术领域
本发明涉及信息处理领域,尤其涉及小程序路由方法、装置、计算机设备及存储介质。
背景技术
随着云计算、云服务技术的不断更新、功能日渐强大,用户前端的应用逐渐由本地APP向由各种小程序构建的轻应用、快应用转变。微信、支付宝、百度等都开始推出基于自身平台的小程序;这些小程序占用本地资源少,运行速度快,能满足生活中各种简单任务的需要,也越来越受用户的推崇。
然而,小程序多是基于JavaScript进行的扩展,在功能实现上多受制于原技术栈的设计。以微信小程序为例,在实现页面路由时只支持传递字符串型的数据,而面对更为复杂的应用,无法传递如函数或其他类型的数据,这对于一些不支持转换为字符串的数据,或者转换之后会丢失原有上下文的数据,则无法传递给下一页面;同时,使得开发过程变得复杂,生产效率不高。
发明内容
本发明实施例提供一种小程序路由方法、装置、计算机设备及存储介质,以解决页面路由无法传递字符串之外数据类型的问题。
一种小程序路由方法,包括:
在小程序初始化阶段,创建路由实例,并将所述路由实例添加为该小程序内所有页面的属性;
在所述小程序的所有页面的加载方法中增加钩子函数,所述钩子函数在当前页面被加载时优先运行;
在传递任意类型的参数时,调用所述路由实例将所述参数保存并转换成唯一的标识信息后,将所述标识信息传递给目标页面;
当所述目标页面的钩子函数运行时,读取所述标识信息并转换成所述参数;
所述目标页面的加载方法获取所述参数并使用。
一种小程序路由装置,包括:
路由建立模块,用于在小程序初始化阶段,创建路由实例,并将所述路由实例添加为该小程序内所有页面的属性;
钩子设置模块,用于在所述小程序的所有页面的加载方法中增加钩子函数,所述钩子函数在当前页面被加载时优先运行;
索引模块,用于在传递任意类型的参数时,调用所述路由实例将所述参数保存并转换成唯一的标识信息后,将所述标识信息传递给目标页面;
参数读取模块,用于当所述目标页面的钩子函数运行时,读取所述标识信息并转换成所述参数;
参数应用模块,用于所述目标页面的加载方法获取所述参数并使用。
一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述小程序路由方法的步骤。
一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述小程序路由方法的步骤。
上述小程序路由方法、装置、计算机设备及存储介质,通过在小程序初始化阶段为所有页面创建路由实例,为页面提供封装方法;并且,在所有页面的加载方法中添加钩子函数,以便于在小程序的页面正常运行周期之前运行,拦截所需要的数据;通过将需要传递的参数(任意数据类型的数据)保存后索引成唯一标识信息(id),利用该标识信息进行页面间的传递,并在目标页面加载时用钩子函数读取该标识信息,进而解决了小程序页面路由时对任意数据类型数据的传递。本技术方案通过构建一个路由模块,允许小程序开发者传递任意类型的数据,包括函数及各类复杂对象等,大大节省了开发周期,提高了生产效率。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一实施例中小程序路由方法的一应用环境示意图;
图2是本发明一实施例中小程序路由方法的流程图;
图3是本发明一实施例中小程序路由装置的示意图;
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明提供的小程序路由方法,主要应用在支持小程序的智能设备上,包括但不限于智能手机、平板电脑等。一个小程序内可能包括多个页面,各个页面之间在切换时需要传递数据,如下一页面需要上一页面所提供的数据作为输入,同时,又可能将当前页面的处理结果传递给下几个页面。例如,在如图1所示的示意图中,页面A、B、C、D、E之间存在复杂的路由关系。
在一实施例中,如图2所示,提供了一种小程序路由方法,该方法基于uni-app框架。uni-app是一个使用Vue.js开发所有前端应用的框架,开发者编写一套代码,即可发布到iOS、Android、Web(响应式)、以及各种小程序(微信/支付宝/百度/头条/QQ/钉钉/淘宝)、快应用等多个平台,极大节省了开发周期和维护成本。具体包括以下步骤:
S1:在小程序初始化阶段,创建路由实例,并将路由实例添加为该小程序内所有页面的属性。
在uni-app框架下,创建一个router路由实例,通过uni-app添加到所有页面的$router属性上,具体实现为Vue.prototype.$router=new Router(routes)。
S2:在小程序的所有页面的加载方法中增加钩子函数,钩子函数在当前页面被加载时优先运行。
根据小程序的页面生存周期,每个页面在加载时均包含一默认的加载方法,例如,微信小程序的页面加载方法为onLoad()。钩子函数在该加载方法运行时优先运行,起到拦截信息的作用。
S3:在传递任意类型的参数时,调用路由实例在将参数保存并转换成唯一的标识信息后,将标识信息传递给目标页面。
其中,当前页面需要传递任意参数给目标页面时,调用路由实例的封装方法,将参数保存并生成唯一的标识信息,并作为唯一参数传递给目标页面。
优选地,可根据预设哈希算法,将参数存储并索引成唯一的标识信息(id),可保证标识信息的唯一性,从而避免因数据量大时出现重复的id。
更进一步地,将标识信息转换成字符串类型数据,并将字符串类型数据传递至目标页面。具体地,设传递至下一页面的参数为:“url:`/page/path?route_id=${id}`”,其中,id即对应上一页面传递参数的索引id。
S4:当目标页面的钩子函数运行时,读取标识信息并转换成参数。
具体地,当目标页面运行时,钩子函数在onLoad()方法运行时优先运行,并根据拦截到的标识信息检索到对应的参数。
S5:目标页面的加载方法获取参数并使用。
当钩子函数读取到标识信息对应的参数后,转由目标页面的加载方法继续运行,即,小程序的页面得到上一页面传递过来的任意类型的参数并使用,从而完成整个路由过程。
在本实施例中,基于uni-app框架,通过uni-app给所有页面添加路由对象(router)和钩子函数;利用唯一id进行参数传递,解决了小程序中不能传递字符串之外数据类型的问题。
可以理解地,本发明提供的小程序路由方法不限于采用uni-app框架,只要构建一个路由模块,保存页面间传值的参数并生成唯一id传递到下一页面,下一页面在初始化过程中根据收到的id取出对应的数据即可,具有广泛的适用性。
在一实施例中,提供一种小程序路由装置,该小程序路由装置与上述实施例中小程序路由方法一一对应。如图3所示,该产品数据的路由建立模块31、钩子设置模块32、索引模块33、参数读取模块34及参数应用模块35。
其中,路由建立模块31,用于在小程序初始化阶段,创建路由实例,并将路由实例添加为该小程序内所有页面的属性;
钩子设置模块32,用于在小程序的所有页面的加载方法中增加钩子函数,钩子函数在当前页面被加载时优先运行;
索引模块33,用于在传递任意类型的参数时,调用路由实例在将参数保存并转换成唯一的标识信息后,将标识信息传递给目标页面;
参数读取模块34,用于当目标页面的钩子函数运行时,读取标识信息并转换成参数;
参数应用模块35,用于目标页面的加载方法获取参数并使用;
进一步地,索引模块还包括数据类型转换子模块331,用于将标识信息转换成字符串类型数据,并将字符串类型数据传递至目标页面;以及索引生成子模块332,用于根据预设哈希算法,将参数存储并索引成唯一的标识信息。
关于小程序路由装置的具体限定可以参见上文中对于小程序路由方法的限定,在此不再赘述。上述小程序路由装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述实施例中小程序路由方法的步骤,例如图2所示的步骤S1至步骤S5。或者,处理器执行计算机程序时实现上述实施例中小程序路由装置的各模块/单元的功能,例如图3所示模块31至模块35的功能。为避免重复,这里不再赘述。
在一实施例中,提供一计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述方法实施例中小程序路由方法,或者,该计算机程序被处理器执行时实现上述装置实施例中小程序路由装置中各模块/单元的功能。为避免重复,这里不再赘述。
以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。
Claims (7)
1.一种小程序路由方法,其特征在于,所述小程序路由方法,包括:
在小程序初始化阶段,创建路由实例,并将所述路由实例添加为该小程序内所有页面的属性;
在所述小程序的所有页面的加载方法中增加钩子函数,所述钩子函数在当前页面被加载时优先运行;
在传递任意类型的参数时,调用所述路由实例将所述参数保存并转换成唯一的标识信息后,将所述标识信息传递给目标页面;执行所述将所述参数保存并转换成唯一的标识信息的步骤为:根据预设哈希算法,将所述参数存储并索引成唯一的标识信息;
当所述目标页面的钩子函数运行时,读取所述标识信息并转换成所述参数;
所述目标页面的加载方法获取所述参数并使用。
2.如权利要求1所述的小程序路由方法,其特征在于,所述将所述标识信息传递给目标页面,包括:
将所述标识信息转换成字符串类型数据,并将所述字符串类型数据传递至所述目标页面。
3.如权利要求1所述的小程序路由方法,其特征在于,所述路由实例和钩子函数均基于uni-app框架构建。
4.一种小程序路由装置,其特征在于,小程序路由装置,包括:
路由建立模块,用于在小程序初始化阶段,创建路由实例,并将所述路由实例添加为该小程序内所有页面的属性;
钩子设置模块,用于在所述小程序的所有页面的加载方法中增加钩子函数,所述钩子函数在当前页面被加载时优先运行;
索引模块,用于在传递任意类型的参数时,调用所述路由实例将所述参数保存并转换成唯一的标识信息后,将所述标识信息传递给目标页面;执行所述将所述参数保存并转换成唯一的标识信息的步骤为:根据预设哈希算法,将所述参数存储并索引成唯一的标识信息;
参数读取模块,用于当所述目标页面的钩子函数运行时,读取所述标识信息并转换成所述参数;
参数应用模块,用于所述目标页面的加载方法获取所述参数并使用。
5.如权利要求4所述的小程序路由装置,其特征在于,所述索引模块,还包括:
数据类型转换子模块,用于将所述标识信息转换成字符串类型数据,并将所述字符串类型数据传递至所述目标页面。
6.一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至3任一项所述小程序路由方法的步骤。
7.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至3任一项所述小程序路由方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110259431.XA CN112925586B (zh) | 2021-03-10 | 2021-03-10 | 一种小程序路由方法、装置、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110259431.XA CN112925586B (zh) | 2021-03-10 | 2021-03-10 | 一种小程序路由方法、装置、计算机设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112925586A CN112925586A (zh) | 2021-06-08 |
CN112925586B true CN112925586B (zh) | 2024-02-27 |
Family
ID=76172358
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110259431.XA Active CN112925586B (zh) | 2021-03-10 | 2021-03-10 | 一种小程序路由方法、装置、计算机设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112925586B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113296762B (zh) * | 2021-06-21 | 2023-07-21 | 北京有竹居网络技术有限公司 | 页面嵌入方法、装置、存储介质及电子设备 |
CN116360877A (zh) * | 2021-12-27 | 2023-06-30 | 北京有竹居网络技术有限公司 | 应用程序管理方法、装置、存储介质以及电子设备 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111224880A (zh) * | 2019-12-31 | 2020-06-02 | 北京健康之家科技有限公司 | 一种单页面应用的接口数据获取方法、装置及存储介质 |
CN111552895A (zh) * | 2020-04-14 | 2020-08-18 | 携程计算机技术(上海)有限公司 | 小程序应用中页面路由的解析方法、系统、设备及介质 |
CN111580820A (zh) * | 2020-05-25 | 2020-08-25 | 泰康保险集团股份有限公司 | 一种小程序生成方法和装置 |
CN111639275A (zh) * | 2019-03-01 | 2020-09-08 | 阿里巴巴集团控股有限公司 | 路由信息处理方法、装置、电子设备及计算机存储介质 |
CN111800344A (zh) * | 2020-07-08 | 2020-10-20 | 深圳市共进电子股份有限公司 | 数据转发方法、装置、路由器和可读存储介质 |
CN111934983A (zh) * | 2020-07-24 | 2020-11-13 | 腾讯科技(深圳)有限公司 | 数据交互方法和装置、存储介质及电子设备 |
CN112417337A (zh) * | 2020-11-27 | 2021-02-26 | 贝壳技术有限公司 | 页面跳转的实现方法、装置、电子设备及存储介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040059829A1 (en) * | 2002-09-24 | 2004-03-25 | Chu Thomas P. | Methods and devices for converting routing data from one protocol to another in a virtual private network |
CN101176328B (zh) * | 2005-04-28 | 2011-08-24 | 松下电器产业株式会社 | 用于保护前缀范围绑定更新的安全的系统、关联方法和设备 |
-
2021
- 2021-03-10 CN CN202110259431.XA patent/CN112925586B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111639275A (zh) * | 2019-03-01 | 2020-09-08 | 阿里巴巴集团控股有限公司 | 路由信息处理方法、装置、电子设备及计算机存储介质 |
CN111224880A (zh) * | 2019-12-31 | 2020-06-02 | 北京健康之家科技有限公司 | 一种单页面应用的接口数据获取方法、装置及存储介质 |
CN111552895A (zh) * | 2020-04-14 | 2020-08-18 | 携程计算机技术(上海)有限公司 | 小程序应用中页面路由的解析方法、系统、设备及介质 |
CN111580820A (zh) * | 2020-05-25 | 2020-08-25 | 泰康保险集团股份有限公司 | 一种小程序生成方法和装置 |
CN111800344A (zh) * | 2020-07-08 | 2020-10-20 | 深圳市共进电子股份有限公司 | 数据转发方法、装置、路由器和可读存储介质 |
CN111934983A (zh) * | 2020-07-24 | 2020-11-13 | 腾讯科技(深圳)有限公司 | 数据交互方法和装置、存储介质及电子设备 |
CN112417337A (zh) * | 2020-11-27 | 2021-02-26 | 贝壳技术有限公司 | 页面跳转的实现方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112925586A (zh) | 2021-06-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112925586B (zh) | 一种小程序路由方法、装置、计算机设备及存储介质 | |
CN110391938B (zh) | 用于部署服务的方法和装置 | |
CN107577629B (zh) | 一种数据接口处理方法、装置、服务器及介质 | |
KR102111871B1 (ko) | 랜덤 문자열을 생성하기 위한 방법 및 장치 | |
CN110941655B (zh) | 一种数据格式转换方法及装置 | |
CN110688096B (zh) | 包含插件的应用程序的构建方法、装置、介质及电子设备 | |
CN112817657B (zh) | 一种应用程序启动项加载方法、装置、系统及存储介质 | |
CN105573733A (zh) | 浏览器与web前端通信的方法、web前端及系统 | |
CN112488688B (zh) | 基于区块链的交易处理方法、装置、设备及存储介质 | |
CN109032612B (zh) | 混合型应用的接口调用方法、装置及计算机可读存储介质 | |
CN106599045B (zh) | 一种请求发送方法及装置 | |
CN111369237A (zh) | 一种数据处理方法、装置及计算机存储介质 | |
CN113791870B (zh) | 一种WebAssembly虚拟机分布式系统细粒度迁移方法及系统 | |
CN109343970B (zh) | 基于应用程序的操作方法、装置、电子设备及计算机介质 | |
CN118034924A (zh) | 基于众核系统的数据处理方法、装置、电子设备和介质 | |
US20140344832A1 (en) | Automated framework for tracking and maintaining kernel symbol list types | |
EP3872630A2 (en) | Request processing method and apparatus, electronic device, and computer storage medium | |
CN117234582A (zh) | 一种项目代码处理方法、装置、电子设备及存储介质 | |
CN117255042A (zh) | 协议文件解析方法、装置、设备及存储介质 | |
CN116932147A (zh) | 流式作业处理方法、装置、电子设备及介质 | |
CN106951288B (zh) | 一种热更资源的开发、应用方法及装置 | |
CN107643892B (zh) | 接口处理方法、装置、存储介质和处理器 | |
CN114327941A (zh) | 一种服务提供方法及装置 | |
CN114244912A (zh) | 数据传输方法、装置、计算机设备及存储介质 | |
CN111400598A (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 |