CN112417337B - 页面跳转的实现方法、装置、电子设备及存储介质 - Google Patents
页面跳转的实现方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN112417337B CN112417337B CN202011361441.6A CN202011361441A CN112417337B CN 112417337 B CN112417337 B CN 112417337B CN 202011361441 A CN202011361441 A CN 202011361441A CN 112417337 B CN112417337 B CN 112417337B
- Authority
- CN
- China
- Prior art keywords
- page
- routing
- native
- flutter
- format
- 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
-
- 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
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本公开实施例公开了一种页面跳转的实现方法、装置、电子设备及存储介质,其中,方法包括:在当前页面为Flutter网页时,获取页面跳转指令,页面跳转指令中携带有Flutter格式的页面路由标识和路由参数;基于Flutter格式的页面路由标识,确定目标页面的页面类型;在页面类型为原生页面时,将Flutter格式的页面路由标识转换为原生格式的页面路由标识;基于所述原生格式的页面路由标识和所述路由参数,跳转至所述目标页面。本公开实施例可以实现应用程序客户端中Flutter网页到原生页面的跳转,提高用户使用Flutter网页的体验。
Description
技术领域
本公开涉及计算机技术领域,尤其涉及一种页面跳转的实现方法、装置、电子设备及存储介质。
背景技术
Flutter框架是谷歌(Google)公司推出的全新跨平台移动用户界面框架,可以在安卓(Android)和iOS(苹果公司开发的移动操作系统)中运行Flutter框架的用户界面代码,节省应用开发成本。
相关技术中,在已上线的Android或iOS的应用程序内引入Flutter技术实现的Flutter网页(Flutter web),面临着Flutter web运行在客户端浏览器中时,只能跳转到Flutter web,而无法跳转到原生页面(Native页面)的问题。
针对上述业务场景,相关技术并没有为Flutter web跳转到Native页面提供一种解决方案,导致Flutter web存在应用局限性,降低了Flutter web的用户使用体验。
发明内容
本公开实施例所要解决的一个技术问题是:提供一种页面跳转的实现方法、装置、电子设备及存储介质。
根据本公开实施例的一个方面,提供一种页面跳转的实现方法,应用于应用程序客户端中,所述应用程序客户端包括Flutter数据处理模块和原生数据处理模块,所述方法包括:
在当前页面为Flutter网页时,获取页面跳转指令,所述页面跳转指令中携带有Flutter格式的页面路由标识和路由参数;
基于所述Flutter格式的页面路由标识,确定目标页面的页面类型,所述页面类型包括Flutter网页和原生页面;
在所述页面类型为原生页面时,将所述Flutter格式的页面路由标识转换为原生格式的页面路由标识;
基于所述原生格式的页面路由标识和所述路由参数,跳转至所述目标页面。
在本公开一实施例中,所述基于所述Flutter格式的页面路由标识,确定目标页面的页面类型,包括:
所述Flutter数据处理模块的数据拦截层在预设路由表中,查询所述Flutter格式的页面路由标识;
若查询到所述Flutter格式的页面路由标识,则确定目标页面的页面类型为原生页面。
在本公开又一实施例中,所述将所述Flutter格式的页面路由标识转换为原生格式的页面路由标识,包括:
所述Flutter数据处理模块的数据拦截层在所述预设路由表中获取对应的原生格式的页面路由标识。
在本公开又一实施例中,基于所述原生格式的页面路由标识和所述路由参数,跳转至所述目标页面,包括:
所述Flutter数据处理模块的数据拦截层对所述路由参数进行编码处理,得到已编码路由参数;
将所述原生格式的页面路由标识和所述已编码路由参数通过JS桥接层传递给所述原生数据处理模块;
所述原生数据处理模块的原生插件层对所述已编码路由参数进行解码处理,得到所述路由参数;
所述原生格式的页面路由标识和所述路由参数,跳转至所述目标页面。
在本公开又一实施例中,所述将所述原生格式的页面路由标识和所述已编码路由参数通过JS桥接层传递给所述原生数据处理模块,包括:
所述Flutter数据处理模块的数据拦截层将所述原生格式的页面路由标识和所述已编码路由参数发送至所述JS桥接层;
所述JS桥接层将所述原生格式的页面路由标识和所述已编码路由参数发送至所述原生数据处理模块的原生插件层。
在本公开又一实施例中,所述基于所述原生格式的页面路由标识和所述路由参数,跳转至所述目标页面,包括:
所述原生数据处理模块的原生插件层将所述原生格式的页面路由标识和所述路由参数发送至所述原生数据处理模块的业务层;
所述原生数据处理模块的业务层基于所述原生格式的页面路由标识和所述路由参数进行页面跳转。
根据本公开实施例提供的又一方面,提供一种页面跳转的实现装置,应用于应用程序客户端中,所述应用程序客户端包括Flutter数据处理模块和原生数据处理模块,所述装置包括:
获取模块,用于在当前页面为Flutter网页时,获取页面跳转指令,所述页面跳转指令中携带有Flutter格式的页面路由标识和路由参数;
类型确定模块,用于基于所述Flutter格式的页面路由标识,确定目标页面的页面类型,所述页面类型包括Flutter网页和原生页面;
路由转换模块,用于在所述页面类型为原生页面时,将所述Flutter格式的页面路由标识转换为原生格式的页面路由标识;
页面跳转模块,用于基于所述原生格式的页面路由标识和所述路由参数,跳转至所述目标页面。
在本公开一实施例中,所述类型确定模块包括:
查询子模块,用于所述Flutter数据处理模块的数据拦截层在预设路由表中,查询所述Flutter格式的页面路由标识;
确定子模块,用于在查询到所述Flutter格式的页面路由标识时,确定目标页面的页面类型为原生页面。
在本公开又一实施例中,所述路由转换模块,用于所述Flutter数据处理模块的数据拦截层在所述预设路由表中获取对应的原生格式的页面路由标识。
在本公开又一实施例中,所述页面跳转模块包括:
编码子模块,用于所述Flutter数据处理模块的数据拦截层对所述路由参数进行编码处理,得到已编码路由参数;
桥接子模块,用于将所述原生格式的页面路由标识和所述已编码路由参数通过JS桥接层传递给所述原生数据处理模块;
解码子模块,用于所述原生数据处理模块的原生插件层对所述已编码路由参数进行解码处理,得到所述路由参数;
跳转子模块,用于基于所述原生格式的页面路由标识和所述路由参数,跳转至所述目标页面。
在本公开又一实施例中,所述桥接子模块包括:
第一桥接子模块,用于所述Flutter数据处理模块的数据拦截层将所述原生格式的页面路由标识和所述已编码路由参数发送至所述JS桥接层;
第二桥接子模块,用于所述JS桥接层将所述原生格式的页面路由标识和所述已编码路由参数发送至所述原生数据处理模块的原生插件层。
在本公开又一实施例中,所述跳转子模块包括:
参数传递子模块,用于所述原生数据处理模块的原生插件层将所述原生格式的页面路由标识和所述路由参数发送至所述原生数据处理模块的业务层;
业务层跳转子模块,用于所述原生数据处理模块的业务层基于所述原生格式的页面路由标识和所述路由参数进行页面跳转。
根据本公开实施例的再一方面,提供一种电子设备,该电子设备包括:
存储器,用于存储计算机程序;
处理器,用于执行所述存储器中存储的计算机程序,且所述计算机程序被执行时,实现上述页面跳转的实现方法。
根据本公开实施例的再一方面,提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时,实现上述页面跳转的实现方法。
基于本公开上述实施例提供的页面跳转的实现方法、装置以及电子设备、存储介质,在应用程序客户端中显示的当前页面为Flutter网页,并且获取到页面跳转指令时,可以基于Flutter格式的页面路由标识,确定目标页面的页面类型,并且在页面类型为原生页面时,将Flutter格式的页面路由标识转换为原生格式的页面路由标识,实现路由格式的转换,进而原生数据处理模块可根据格式转换后的页面路由标识和路由参数跳转至原生格式的目标页面。本公开实施例为Flutter网页跳转到原生页面提供了一种解决方案,实现了应用程序客户端中Flutter网页到原生页面的跳转,提高了用户使用Flutter网页的体验。
下面通过附图和实施例,对本公开的技术方案做进一步的详细描述。
附图说明
构成说明书的一部分的附图描述了本公开的实施例,并且连同描述一起用于解释本公开的原理。
参照附图,根据下面的详细描述,可以更加清楚地理解本公开,其中:
图1为本公开的页面跳转的实现方法的一个实施例的流程图;
图2A为本公开的页面跳转的实现方法的一个各个数据模块之间的交互示意图;
图2B为本公开的页面跳转的实现方法的一个确定页面类型的流程图;
图3为本公开的页面跳转的实现装置的一个实施例的结构示意图;
图4为本公开的页面跳转的实现装置的又一个实施例的结构示意图;
图5为本公开一示意性实施例提供的电子设备的结构图。
具体实施方式
现在将参照附图来详细描述本公开的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本公开的范围。
同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。
以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本公开及其应用或使用的任何限制。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
本公开实施例可以应用于计算机系统/服务器等电子设备,其可与众多其它通用或专用计算系统环境或配置一起操作。适于与计算机系统/服务器等电子设备一起使用的众所周知的计算系统、环境和/或配置的例子包括但不限于:个人计算机系统、服务器计算机系统、瘦客户机、厚客户机、手持或膝上设备、基于微处理器的系统、机顶盒、可编程消费电子产品、网络个人电脑、小型计算机系统、大型计算机系统和包括上述任何系统的分布式云计算技术环境,等等。
计算机系统/服务器等电子设备可以在由计算机系统执行的计算机系统可执行指令(诸如程序模块)的一般语境下描述。通常,程序模块可以包括例程、程序、目标程序、组件、逻辑、数据结构等等,它们执行特定的任务或者实现特定的抽象数据类型。计算机系统/服务器可以在分布式云计算环境中实施,分布式云计算环境中,任务是由通过通信网络链接的远程处理设备执行的。在分布式云计算环境中,程序模块可以位于包括存储设备的本地或远程计算系统存储介质上。
本公开概述
本公开实施例提供的技术方案用于Flutter框架技术领域,例如,在引入Flutter技术实现一个应用程序时,应用程序客户端上可以显示Flutter网页(Flutter web)和原生页面,其中,Flutter网页为使用Flutter框架编译而成的JavaScript页面,而原生页面是由Objective-C语言(通常写作ObjC或OC和较少用的Objective C或Obj-C,是扩充C的面向对象编程语言,主要用于Mac OS X和GNUstep这两个使用OpenStep标准的系统)或者Java语言编译而成的页面,两者属于不同的页面类型,因此会面临需要面临混合页面管理的问题,例如不同类型的页面之间的页面跳转的问题。目前,在当前页面为Flutter网页时,只能跳转到Flutter网页,而导致不能保证不同页面类型的页面之间的自由跳转,Flutter框架技术的应用扩展性比较差。
示例性实施例
图1为本公开的页面跳转的实现方法的一个实施例的流程图;该页面跳转的实现方法可以应用在移动终端的应用程序客户端上,应用程序客户端包括Flutter数据处理模块和原生数据处理模块,如图1所示,该页面跳转的实现方法包括以下步骤:
在步骤101中,在当前页面为Flutter网页时,获取页面跳转指令,页面跳转指令中携带有Flutter格式的页面路由标识和路由参数。
在一实施例中,在引入Flutter框架技术实现一个应用程序时,该应用程序客户端可以包括Flutter数据处理模块和原生数据处理模块,由此需要实现不同类型的页面数据处理,实现不同类型的页面之间的跳转。
在一实施例中,在当前页面为Flutter网页时,如果用户触发了页面跳转操作,Flutter数据处理模块的业务层可获取到页面跳转指令。
在一实施例中,页面跳转指令中可携带待跳转至的目标页面的Flutter格式的页面路由标识和路由参数。对于显示相同内容但页面类型不同的两个页面来说,其Flutter格式的页面路由标识和原生格式的页面路由标识是不相同的,例如,某个目标页面的Flutter格式的页面路由标识可以为lianjiabeikeft://plat/list,原生格式的页面路由标识可以为lianjiabeike://plat/list?id=BJ9840347331,当前页面为Flutter网页时,Flutter数据处理模块会为待跳转至的原生页面生成Flutter格式的页面路由标识。
在步骤102中,基于Flutter格式的页面路由标识,确定目标页面的页面类型,页面类型包括Flutter网页和原生页面。
在一实施例中,为了实现本公开实施例,可以设置一个预设路由表,预设路由表中记录有从Flutter网页跳转至的原生页面的Flutter格式的页面路由标识和原生格式的页面路由标识。
在一实施例中,如果可以在预设路由表中查询到跳转指令中携带的Flutter格式的页面路由标识,则确定要跳转到的页面为原生页面;如果不能在预设路由表中查询到跳转指令中携带的Flutter格式的页面路由标识,则确定要跳转到的页面不是原生页面。
在步骤103中,在页面类型为原生页面时,将Flutter格式的页面路由标识转换为原生格式的页面路由标识。
在一实施例中,由于预设路由表中记录有原生页面的Flutter格式的页面路由标识和对应的原生格式的页面路由标识。例如,预设路由表可包含如下内容:
{
"lianjiabeikeft://plat/list":{
"origin_url":"lianjiabeikeft://plat/list",
"native_url":"lianjiabeike://plat/list?id=BJ9840347331"
},
"lianjiabeikeft://newhouse/expert/homepage":{
"origin_url":"lianjiabeikeft://newhouse/expert/homepage",
"native_url":"lianjiabeike://rent/main?cityid=110000"
},
}
其中,上述预设路由表中origin_url为Flutter格式的页面路由标识,native_url为Flutter格式的页面路由标识。如果跳转指令中携带的Flutter格式的页面路由标识,则Flutter数据处理模块的数据拦截层可从预设路由表中获取对应的页面路由标识,实现Flutter格式的页面路由标识到原生格式的页面路由标识的转换,例如,Flutter格式的页面路由标识为lianjiabeikeft://newhouse/expert/homepage时,Flutter数据处理模块的数据拦截层可从预设路由表中获取对应的页面路由标识lianjiabeike://rent/main?cityid=110000,实现页面路由标识的格式转换。
在步骤104中,基于原生格式的页面路由标识和路由参数,跳转至目标页面。
在一实施例中,Flutter数据处理模块的数据拦截层对页面路由标识进行转换之后,还需要对路由参数进行编码,然后即可将编码后的路由参数和格式转换后的页面路由标识通过桥接层发给原生数据处理模块,由原生数据处理模块实现页面的跳转。
在一实施例中,原生数据处理模块实现页面跳转的具体实现方式可参见图2A所示实施例的操作流程,这里先不详述。
上述步骤101~104,通过在应用程序客户端中显示的当前页面为Flutter网页并且获取到页面跳转指令时,可以基于Flutter格式的页面路由标识,确定目标页面的页面类型,并且在页面类型为原生页面时,将Flutter格式的页面路由标识转换为原生格式的页面路由标识,进而实现路由格式的转换,而原生数据处理模块即可根据格式转换后的页面路由标识和路由参数跳转至原生页面。本公开实施例为Flutter web跳转到Native页面提供了一种解决方案,实现了Flutter web到Native页面的跳转,提高了用户使用Flutter web的体验。
为了更好地说明本申请的页面跳转的实现方案,下面用另一个实施例说明。
图2A为本公开的页面跳转的实现方法的一个各个数据模块之间的交互示意图,图2B为本公开的页面跳转的实现方法的一个确定页面类型的流程图;本实施例以当前页面为Flutter网页时,应用程序客户端中进行页面跳转的过程中,各个数据处理模块之间的信息交互处理流程为例进行示例性说明,如图2A所示,包括如下步骤:
在步骤201中,Flutter数据处理模块的业务层获取页面跳转操作,生成页面跳转指令。
在一实施例中,页面跳转指令中携带有Flutter格式的页面路由标识和路由参数。
在一实施例中,Flutter数据处理模块为应用程序中的Flutter网页数据处理模块,Flutter数据处理模块的业务层、数据拦截层之间通过接口连接,进行页面数据的处理,数据拦截层可以基于面向切面技术拦截业务层的页面跳转指令,并且对页面跳转指令中的路由参数和路由标识进行处理。
在一实施例中,Flutter数据处理模块的数据拦截层与JS桥接层之间也通过接口连接和信令交互。
在步骤202中,Flutter数据处理模块的数据拦截层拦截页面跳转指令,并基于页面跳转指令确定页面类型。
在一实施例中,在确定页面类型为原生页面时,执行步骤203,在确定页面类型不为原生页面(例如页面类型仍为Flutter网页)时,则直接根据路由参数和页面路由标识完成页面跳转即可。
在一实施例中,确定页面类型的实现方式可参见图2B所示实施例,如图2B所示,包括以下步骤211-212:
在步骤211中,Flutter数据处理模块的数据拦截层在预设路由表中,查询Flutter格式的页面路由标识。
在步骤212中,若查询到Flutter格式的页面路由标识,则确定目标页面的页面类型为原生页面。
在一实施例中,预设路由表中记录有从Flutter网页跳转至的原生页面的Flutter格式的页面路由标识和原生格式的页面路由标识。如果可以在预设路由表中查询到跳转指令中携带的Flutter格式的页面路由标识,则表示要跳转到的页面为原生页面;如果不能在预设路由表中查询到跳转指令中携带的Flutter格式的页面路由标识,则表示要跳转到的页面不是原生页面。
在步骤203中,在页面类型为原生页面时,Flutter数据处理模块的数据拦截层在预设路由表中获取对应的原生格式的页面路由标识。
在步骤204中,Flutter数据处理模块的数据拦截层对路由参数进行编码处理,得到已编码路由参数。
在一实施例中,可使用编码函数encode()对string格式的路由参数进行编码,得到map格式的已编码路由参数。
在一实施例中,Flutter数据处理模块的数据拦截层在得到已编码路由参数后,Flutter数据处理模块的数据拦截层可将原生格式的页面路由标识和已编码路由参数通过JS桥接层传递给原生数据处理模块,通过JS桥接层传递给原生数据处理模块的具体实现方式可参见步骤205-步骤206的描述。
在步骤205中,Flutter数据处理模块的数据拦截层将原生格式的页面路由标识和已编码路由参数发送至JS桥接层。
在一实施例中,Flutter数据处理模块的数据拦截层在得到原生格式的页面路由标识和已编码路由参数后,即可将原生格式的页面路由标识和已编码路由参数进行封装打包,然后将打包后的数据发送至JS桥接层。
在步骤206中,JS桥接层将原生格式的页面路由标识和已编码路由参数发送至原生数据处理模块的原生插件层。
在步骤207中,原生数据处理模块的原生插件层对已编码路由参数进行解码处理,得到路由参数。
在一实施例中,可使用编码函数decode()对map格式的已编码路由参数进行解码,得到解码后的string格式的路由参数。
在一实施例中,通过步骤207确定目标页面的路由参数之后,原生数据处理模块即可基于原生格式的页面路由标识和所述路由参数,跳转至目标页面,具体实现时,可通过步骤208和步骤209提供的技术方案跳转至目标页面。
在步骤208中,原生数据处理模块的原生插件层将原生格式的页面路由标识和路由参数发送至原生数据处理模块的业务层。
在一实施例中,原生数据处理模块的原生插件层在解码得到路由参数后,即可将路由参数和原生格式的页面路由标识通过接口传递给业务层。
在步骤209中,原生数据处理模块的业务层基于原生格式的页面路由标识和路由参数进行页面跳转。
在一实施例中,原生数据处理模块的业务层基于原生格式的页面路由标识和路由参数进行页面跳转的实现方式,可参见现有技术的描述,这里不再详细描述。
上述步骤201~209,通过应用程序客户端中原生数据处理模块和Flutter数据处理模块之间各个层的数据交互,详细介绍了从Flutter网页跳转到原生页面的具体实现方式。本公开实施例为Flutter网页跳转到原生页面提供了一种解决方案,实现了Flutter网页跳转到原生页面的跳转,提高了用户使用Flutter网页的体验。
与前述页面跳转的实现方法的实施例相对应,本公开还提供了页面跳转的实现装置对应的实施例。
图3为本公开的页面跳转的实现装置的一个实施例的结构示意图,该装置应用在应用程序客户端上,该应用程序客户端包括两大功能模块,分别为Flutter数据处理模块和原生数据处理模块,如图3所示,该装置具体包括:
获取模块31,用于在当前页面为Flutter网页时,获取页面跳转指令,页面跳转指令中携带有Flutter格式的页面路由标识和路由参数;
类型确定模块32,用于基于Flutter格式的页面路由标识,确定目标页面的页面类型,页面类型包括Flutter网页和原生页面;
路由转换模块33,用于在页面类型为原生页面时,将Flutter格式的页面路由标识转换为原生格式的页面路由标识;
页面跳转模块34,用于基于原生格式的页面路由标识和路由参数,跳转至目标页面。
图4为本公开的页面跳转的实现装置的又一个实施例的结构示意图,如图4所示,在图3所示实施例的基础上,在一实施例中,类型确定模块32包括:
查询子模块321,用于Flutter数据处理模块的数据拦截层在预设路由表中,查询Flutter格式的页面路由标识;
确定子模块322,用于在查询到Flutter格式的页面路由标识时,确定目标页面的页面类型为原生页面。
在一实施例中,路由转换模块33,用于Flutter数据处理模块的数据拦截层在预设路由表中获取对应的原生格式的页面路由标识。
在一实施例中,页面跳转模块34包括:
编码子模块341,用于Flutter数据处理模块的数据拦截层对路由参数进行编码处理,得到已编码路由参数;
桥接子模块342,用于将原生格式的页面路由标识和已编码路由参数通过JS桥接层传递给原生数据处理模块;
解码子模块343,用于原生数据处理模块的原生插件层对已编码路由参数进行解码处理,得到路由参数;
跳转子模块344,用于基于原生格式的页面路由标识和路由参数,跳转至目标页面。
在一实施例中,桥接子模块342包括:
第一桥接子模块3421,用于Flutter数据处理模块的数据拦截层将原生格式的页面路由标识和已编码路由参数发送至JS桥接层;
第二桥接子模块3422,用于JS桥接层将原生格式的页面路由标识和已编码路由参数发送至原生数据处理模块的原生插件层。
在一实施例中,跳转子模块344包括:
参数传递子模块3441,用于原生数据处理模块的原生插件层将原生格式的页面路由标识和路由参数发送至原生数据处理模块的业务层;
业务层跳转子模块3442,用于原生数据处理模块的业务层基于原生格式的页面路由标识和路由参数进行页面跳转。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本公开方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
下面,参考图5来描述根据本公开实施例的电子设备,其中可以集成本公开实施例实现方法的装置。图5为本公开一示意性实施例提供的电子设备的结构图,如图5所示,电子设备5包括一个或多个处理器51、一个或多个计算机可读存储介质的存储器52,以及存储在存储器上并可在处理器上运行的计算机程序。在执行存储器52的程序时,可以实现上述页面跳转的实现方法。
具体的,在实际应用中,该电子设备还可以包括输入装置53、输出装置54等部件,这些组件通过总线系统和/或其他形式的连接机构(未示出)互连。本领域技术人员可以理解,图5中示出的电子设备的结构并不构成对该电子设备的限定,可以包括比图示更多或更少的部件,或者某些部件,或者不同的部件布置。其中:
处理器51可以是中央处理单元(CPU)或者具有数据处理能力和/或指令执行能力的其他形式的处理单元,通过运行或执行存储在存储器52内的软件程序和/或模块,以及调用存储在存储器52内的数据,执行各种功能和处理数据,从而对该电子设备进行整体监控。
存储器52可以包括一个或多个计算机程序产品,计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。易失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。非易失性存储器例如可以包括只读存储器(ROM)、硬盘、闪存等。在计算机可读存储介质上可以存储一个或多个计算机程序指令,处理器51可以运行程序指令,以实现上文的本公开的各个实施例的声源定位方法以及/或者其他期望的功能。在计算机可读存储介质中还可以存储诸如输入信号、信号分量、噪声分量等各种内容。
输入装置53可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆,光学或轨迹球信号输入。
输出装置54可以向外部输出各种信息,包括确定出的距离信息、方向信息等。该输出装置54可以包括例如显示器、扬声器、打印机、以及通信网络及其所连接的远程输出设备等等。
电子设备还可以包括给各个部件供电的电源,可以通过电源管理系统与处理器51逻辑相连,从而通过电源管理系统实现管理充电、放电,以及功耗管理等功能。电源还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
当然,为了简化,图5中仅示出了该电子设备5中与本公开有关的组件中的一些,省略了诸如总线、输入/输出接口等等的组件。除此之外,根据具体应用情况,电子设备5还可以包括任何其他适当的组件。
除了上述方法和设备以外,本公开的实施例还可以是计算机程序产品,其包括计算机程序指令,计算机程序指令在被处理器运行时使得处理器执行本说明书上述“示例性方法”部分中描述的根据本公开各种实施例的声源定位方法中的步骤。
计算机程序产品可以以一种或多种程序设计语言的任意组合来编写用于执行本公开实施例操作的程序代码,程序设计语言包括面向对象的程序设计语言,诸如Java、C++等,还包括常规的过程式程序设计语言,诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。
此外,本公开的实施例还可以是计算机可读存储介质,其上存储有计算机程序指令,计算机程序指令在被处理器运行时使得处理器执行本说明书上述“示例性方法”部分中描述的根据本公开各种实施例的声源定位方法中的步骤。
计算机可读存储介质可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以包括但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
以上结合具体实施例描述了本公开的基本原理,但是,需要指出的是,在本公开中提及的优点、优势、效果等仅是示例而非限制,不能认为这些优点、优势、效果等是本公开的各个实施例必须具备的。另外,上述公开的具体细节仅是为了示例的作用和便于理解的作用,而非限制,上述细节并不限制本公开为必须采用上述具体的细节来实现。
本说明书中各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似的部分相互参见即可。对于系统实施例而言,由于其与方法实施例基本对应,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
可能以许多方式来实现本公开的方法和装置。例如,可通过软件、硬件、固件或者软件、硬件、固件的任何组合来实现本公开的方法和装置。用于方法的步骤的上述顺序仅是为了进行说明,本公开的方法的步骤不限于以上具体描述的顺序,除非以其它方式特别说明。此外,在一些实施例中,还可将本公开实施为记录在记录介质中的程序,这些程序包括用于实现根据本公开的方法的机器可读指令。因而,本公开还覆盖存储用于执行根据本公开的方法的程序的记录介质。
本公开的描述是为了示例和描述起见而给出的,而并不是无遗漏的或者将本公开限于所公开的形式。很多修改和变化对于本领域的普通技术人员而言是显然的。选择和描述实施例是为了更好说明本公开的原理和实际应用,并且使本领域的普通技术人员能够理解本公开从而设计适于特定用途的带有各种修改的各种实施例。
Claims (12)
1.一种页面跳转的实现方法,其特征在于,应用于应用程序客户端中,所述应用程序客户端包括Flutter数据处理模块和原生数据处理模块,所述方法包括:
在当前页面为Flutter网页时,获取页面跳转指令,所述页面跳转指令中携带有Flutter格式的页面路由标识和路由参数;
基于所述Flutter格式的页面路由标识,确定目标页面的页面类型,所述页面类型包括Flutter网页和原生页面;
在所述页面类型为原生页面时,所述Flutter数据处理模块的数据拦截层基于预设路由表将所述Flutter格式的页面路由标识转换为原生格式的页面路由标识,所述预设路由表中记录有原生页面的Flutter格式的页面路由标识和对应的原生格式的页面路由标识;
基于所述原生格式的页面路由标识和所述路由参数,跳转至所述目标页面;
所述基于所述原生格式的页面路由标识和所述路由参数,跳转至所述目标页面,包括:
所述Flutter数据处理模块的数据拦截层对所述路由参数进行编码处理,得到已编码路由参数;
将所述原生格式的页面路由标识和所述已编码路由参数通过JS桥接层传递给所述原生数据处理模块;
所述原生数据处理模块的原生插件层对所述已编码路由参数进行解码处理,得到所述路由参数;
基于所述原生格式的页面路由标识和所述路由参数,跳转至所述目标页面。
2.根据权利要求1所述的方法,其特征在于,所述基于所述Flutter格式的页面路由标识,确定目标页面的页面类型,包括:
所述Flutter数据处理模块的数据拦截层在预设路由表中,查询所述Flutter格式的页面路由标识;
若查询到所述Flutter格式的页面路由标识,则确定目标页面的页面类型为原生页面。
3.根据权利要求2所述的方法,其特征在于,所述将所述Flutter格式的页面路由标识转换为原生格式的页面路由标识,包括:
所述Flutter数据处理模块的数据拦截层在所述预设路由表中获取对应的原生格式的页面路由标识。
4.根据权利要求1所述的方法,其特征在于,所述将所述原生格式的页面路由标识和所述已编码路由参数通过JS桥接层传递给所述原生数据处理模块,包括:
所述Flutter数据处理模块的数据拦截层将所述原生格式的页面路由标识和所述已编码路由参数发送至所述JS桥接层;
所述JS桥接层将所述原生格式的页面路由标识和所述已编码路由参数发送至所述原生数据处理模块的原生插件层。
5.根据权利要求4所述的方法,其特征在于,所述基于所述原生格式的页面路由标识和所述路由参数,跳转至所述目标页面,包括:
所述原生数据处理模块的原生插件层将所述原生格式的页面路由标识和所述路由参数发送至所述原生数据处理模块的业务层;
所述原生数据处理模块的业务层基于所述原生格式的页面路由标识和所述路由参数进行页面跳转。
6.一种页面跳转的实现装置,其特征在于,应用于应用程序客户端中,所述应用程序客户端包括Flutter数据处理模块和原生数据处理模块,所述装置包括:
获取模块,用于在当前页面为Flutter网页时,获取页面跳转指令,所述页面跳转指令中携带有Flutter格式的页面路由标识和路由参数;
类型确定模块,用于基于所述Flutter格式的页面路由标识,确定目标页面的页面类型,所述页面类型包括Flutter网页和原生页面;
路由转换模块,用于在所述页面类型为原生页面时,所述Flutter数据处理模块的数据拦截层基于预设路由表将所述Flutter格式的页面路由标识转换为原生格式的页面路由标识,所述预设路由表中记录有原生页面的Flutter格式的页面路由标识和对应的原生格式的页面路由标识;
页面跳转模块,用于基于所述原生格式的页面路由标识和所述路由参数,跳转至所述目标页面;
所述页面跳转模块包括:
编码子模块,用于所述Flutter数据处理模块的数据拦截层对所述路由参数进行编码处理,得到已编码路由参数;
桥接子模块,用于将所述原生格式的页面路由标识和所述已编码路由参数通过JS桥接层传递给所述原生数据处理模块;
解码子模块,用于所述原生数据处理模块的原生插件层对所述已编码路由参数进行解码处理,得到所述路由参数;
跳转子模块,用于基于所述原生格式的页面路由标识和所述路由参数,跳转至所述目标页面。
7.根据权利要求6所述的装置,其特征在于,所述类型确定模块包括:
查询子模块,用于所述Flutter数据处理模块的数据拦截层在预设路由表中,查询所述Flutter格式的页面路由标识;
确定子模块,用于在查询到所述Flutter格式的页面路由标识时,确定目标页面的页面类型为原生页面。
8.根据权利要求7所述的装置,其特征在于,所述路由转换模块,用于所述Flutter数据处理模块的数据拦截层在所述预设路由表中获取对应的原生格式的页面路由标识。
9.根据权利要求6所述的装置,其特征在于,所述桥接子模块包括:
第一桥接子模块,用于所述Flutter数据处理模块的数据拦截层将所述原生格式的页面路由标识和所述已编码路由参数发送至所述JS桥接层;
第二桥接子模块,用于所述JS桥接层将所述原生格式的页面路由标识和所述已编码路由参数发送至所述原生数据处理模块的原生插件层。
10.根据权利要求9所述的装置,其特征在于,所述跳转子模块包括:
参数传递子模块,用于所述原生数据处理模块的原生插件层将所述原生格式的页面路由标识和所述路由参数发送至所述原生数据处理模块的业务层;
业务层跳转子模块,用于所述原生数据处理模块的业务层基于所述原生格式的页面路由标识和所述路由参数进行页面跳转。
11.一种电子设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述存储器中存储的计算机程序,且所述计算机程序被执行时,实现上述权利要求1-5任一所述的方法。
12.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时,实现上述权利要求1-5任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011361441.6A CN112417337B (zh) | 2020-11-27 | 2020-11-27 | 页面跳转的实现方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011361441.6A CN112417337B (zh) | 2020-11-27 | 2020-11-27 | 页面跳转的实现方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112417337A CN112417337A (zh) | 2021-02-26 |
CN112417337B true CN112417337B (zh) | 2022-03-11 |
Family
ID=74843348
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011361441.6A Active CN112417337B (zh) | 2020-11-27 | 2020-11-27 | 页面跳转的实现方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112417337B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112925586B (zh) * | 2021-03-10 | 2024-02-27 | 深圳市活力天汇科技股份有限公司 | 一种小程序路由方法、装置、计算机设备及存储介质 |
CN115129319A (zh) * | 2021-03-26 | 2022-09-30 | 京东方科技集团股份有限公司 | 一种编译方法、编译装置、执行方法以及计算机设备 |
CN113065079B (zh) * | 2021-04-13 | 2023-10-13 | 开鑫金服(南京)信息服务有限公司 | 基于地址协议实现调用原生页面的方法、设备及存储介质 |
CN113268965A (zh) * | 2021-04-28 | 2021-08-17 | 青岛海尔科技有限公司 | 用于自动生成路由表的方法、装置、存储介质及电子设备 |
CN113076209B (zh) * | 2021-06-08 | 2021-08-17 | 贝壳技术有限公司 | 通信方法、装置、电子设备及存储介质 |
CN113641936B (zh) * | 2021-08-12 | 2023-08-11 | 百度在线网络技术(北京)有限公司 | 用于页面跳转的方法、装置、电子设备及存储介质 |
CN114090145B (zh) * | 2021-10-26 | 2024-03-22 | 青岛海尔科技有限公司 | 页面跳转的确定方法及装置、存储介质、电子装置 |
CN114116056A (zh) * | 2021-11-19 | 2022-03-01 | 京东方科技集团股份有限公司 | 页面显示方法及装置 |
CN115113962A (zh) * | 2022-06-17 | 2022-09-27 | 北京城市网邻信息技术有限公司 | 界面跳转方法、装置、电子设备及可读存储介质 |
CN117724726B (zh) * | 2024-02-05 | 2024-05-28 | 腾讯科技(深圳)有限公司 | 一种数据处理方法和相关装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110221872A (zh) * | 2019-04-22 | 2019-09-10 | 五八有限公司 | 页面跳转方法、装置、电子设备和存储介质 |
CN110717119A (zh) * | 2019-10-10 | 2020-01-21 | 北京字节跳动网络技术有限公司 | 页面跳转方法、装置、电子设备及存储介质 |
CN111859198A (zh) * | 2019-04-29 | 2020-10-30 | 天津五八到家科技有限公司 | 页面跳转方法、页面跳转系统、客户端设备及服务端设备 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106815276B (zh) * | 2015-11-27 | 2020-06-16 | 阿里巴巴集团控股有限公司 | 页面跳转方法及装置 |
CN107229665B (zh) * | 2016-03-25 | 2021-04-13 | 阿里巴巴集团控股有限公司 | 一种页面跳转方法及装置 |
CN108469979A (zh) * | 2018-03-28 | 2018-08-31 | 深圳前海桔子信息技术有限公司 | 一种页面跳转方法、装置、服务器和存储介质 |
CN111258559B (zh) * | 2020-02-21 | 2022-07-19 | 南京新贝金服科技有限公司 | 一种基于React Native的混合应用多级页面路由跳转方法 |
-
2020
- 2020-11-27 CN CN202011361441.6A patent/CN112417337B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110221872A (zh) * | 2019-04-22 | 2019-09-10 | 五八有限公司 | 页面跳转方法、装置、电子设备和存储介质 |
CN111859198A (zh) * | 2019-04-29 | 2020-10-30 | 天津五八到家科技有限公司 | 页面跳转方法、页面跳转系统、客户端设备及服务端设备 |
CN110717119A (zh) * | 2019-10-10 | 2020-01-21 | 北京字节跳动网络技术有限公司 | 页面跳转方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112417337A (zh) | 2021-02-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112417337B (zh) | 页面跳转的实现方法、装置、电子设备及存储介质 | |
US20200228485A1 (en) | Method and apparatus for unified message adaptation | |
CN110457143B (zh) | 微服务的调用方法及装置 | |
CN102681854B (zh) | 业务执行方法、服务器和计算机系统 | |
CN113076209B (zh) | 通信方法、装置、电子设备及存储介质 | |
US8676848B2 (en) | Configuring cloud resources | |
CN107580013B (zh) | 跨域请求数据的方法及装置 | |
CN111338623B (zh) | 一种开发用户界面的方法、装置、介质和电子设备 | |
CN102356380A (zh) | 具有可扩展媒体格式的托管应用程序平台 | |
CN104346146A (zh) | 一种跨平台转换应用代码的方法及装置 | |
CN110795649A (zh) | 目标页面展示方法、装置、系统及电子设备 | |
CN110688096B (zh) | 包含插件的应用程序的构建方法、装置、介质及电子设备 | |
CN110795181A (zh) | 基于跳转协议的应用程序界面展示方法、装置及电子设备 | |
CN113761428A (zh) | 页面渲染方法、装置、系统、存储介质及电子设备 | |
CN114020718A (zh) | 一种不可更改nft作品处理方法及其装置 | |
CN111949419A (zh) | 一种跨环境资源获取方法、装置和电子设备 | |
CN109636460B (zh) | 一种业务处理方法、装置、设备及存储介质 | |
CN105681823A (zh) | 一种对视频文件进行在线转码的方法和装置 | |
EP3519964B1 (en) | Electronic apparatus for recording debugging information and control method thereof | |
JP2009031960A (ja) | クライアント装置およびサーバ装置の間の通信を中継する技術 | |
CN113641354A (zh) | 业务数据处理方法、装置、电子设备及存储介质 | |
CN111176641B (zh) | 流程节点执行方法、装置、介质及电子设备 | |
CN110548285B (zh) | 游戏通信控制方法及装置、介质及电子设备 | |
CN115080154A (zh) | 页面显示方法、装置、存储介质及电子设备 | |
CN109657179B (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: 20210713 Address after: 100085 Floor 101 102-1, No. 35 Building, No. 2 Hospital, Xierqi West Road, Haidian District, Beijing Applicant after: Seashell Housing (Beijing) Technology Co.,Ltd. Address before: Unit 05, room 112, 1st floor, office building, Nangang Industrial Zone, economic and Technological Development Zone, Binhai New Area, Tianjin 300457 Applicant before: BEIKE TECHNOLOGY Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |