CN116302602A - 一种Flutter原生混合开发的消息传输方法及装置 - Google Patents
一种Flutter原生混合开发的消息传输方法及装置 Download PDFInfo
- Publication number
- CN116302602A CN116302602A CN202310192928.3A CN202310192928A CN116302602A CN 116302602 A CN116302602 A CN 116302602A CN 202310192928 A CN202310192928 A CN 202310192928A CN 116302602 A CN116302602 A CN 116302602A
- Authority
- CN
- China
- Prior art keywords
- message
- transmission
- subscription page
- message subscription
- request
- 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
- 230000005540 biological transmission Effects 0.000 title claims abstract description 217
- 238000000034 method Methods 0.000 title claims abstract description 89
- 238000011161 development Methods 0.000 title claims abstract description 29
- 230000015654 memory Effects 0.000 claims description 29
- 238000004590 computer program Methods 0.000 claims description 18
- 238000012423 maintenance Methods 0.000 abstract description 4
- 238000004891 communication Methods 0.000 description 13
- 238000010586 diagram Methods 0.000 description 13
- 230000006870 function Effects 0.000 description 8
- 230000007246 mechanism Effects 0.000 description 8
- 238000012545 processing Methods 0.000 description 6
- 230000008569 process Effects 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 230000033228 biological regulation Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000007670 refining Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
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/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
- G06F8/00—Arrangements for software engineering
- G06F8/20—Software design
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本说明书涉及移动应用开发技术领域,提供了一种Flutter原生混合开发的消息传输方法及装置。该方法包括:获取消息传输请求;其中,所述消息传输请求的发布端包括Flutter端或原生端;从与所述消息传输请求的发布端对应的消息订阅页面列表中,匹配与所述消息传输请求的传输标识对应的消息订阅页面;确定匹配得到的消息订阅页面对应的消息传输通道;利用所述消息传输通道将所述消息传输请求推送至所述对应的消息订阅页面。通过本说明书实施例,可提高Flutter原生混合开发效率、减少开发复杂度和降低维护成本。
Description
技术领域
本说明书涉及移动应用开发技术领域,尤其是涉及一种Flutter原生混合开发的消息传输方法及装置。
背景技术
Flutter作为Google开源的构建用户界面(UI)工具包,帮助开发者通过一套代码库高效构建多平台精美应用,支持移动、Web、桌面和嵌入式平台。跨平台开发能够使一套代码可以同时在Android和iOS等平台上运行,既可以满足系统业务量及复杂度增加的开发需求,还可以提高开发效率、降低维护成本和人力成本。目前Flutter平台和原生平台中多个页面实现互相消息通知时,消息传递方向分为四种类型,分别是Flutter平台向Flutter平台传递、Flutter平台向原生平台、原生平台向Flutter平台以及原生平台向原生平台,为了实现上述四种类型的消息传递,现有技术中EventBus提供了一种能够处理Flutter平台的多个页面间消息通讯的事件总线,FlowBus、LiveDataBus和基于RxJava实现的RxBus等则都能够实现原生平台的多个页面间的消息通讯。
在Flutter平台向原生平台传递消息和原生平台向Flutter平台传递消息时,则需要对待传输的消息进行分类细化,先将消息分为多个类型,不同的类型中进一步包含不同种消息,相应地,基于不同的消息类型建立对应的唯一的消息类型标识,通过该消息类型标识可以建立适配于被所述消息类型标识调用的、所述原生平台与所述Flutter容器之间的消息通道,因此消息类型标识也可以视为消息通道标识,从而实现交叉平台中各页面之间的消息通讯;然而这种跨平台的通讯方式,随着业务需求增大,需要传输消息的页面和处理的消息不断增加,需要建立的消息类型标识也越来越多,会出现代码冗余、开发成本和维护难度增大的问题。此外,现有技术在Flutter平台和原生平台中多个页面互相消息通知时,需要选择并拼接多种不同的通讯方式,才能实现Flutter平台向Flutter平台传递、Flutter平台向原生平台、原生平台向Flutter平台以及原生平台向原生平台这四种通讯功能兼备,因此亟需一种Flutter原生混合开发的消息传输方法,以提高应用程序的开发效率、减少开发复杂度和降低维护成本。
发明内容
鉴于目前,提出了本方案以便克服上述问题或者至少部分地解决上述问题。
一方面,本说明书的一些实施例的目的在于提供一种Flutter原生混合开发的消息传输方法,所述方法包括:
获取消息传输请求;其中,所述消息传输请求的发布端包括Flutter端或原生端;
从与所述消息传输请求的发布端对应的消息订阅页面列表中,匹配与所述消息传输请求的传输标识对应的消息订阅页面;
确定匹配得到的消息订阅页面对应的消息传输通道;
利用所述消息传输通道将所述消息传输请求推送至所述对应的消息订阅页面。
进一步地,所述消息订阅页面列表预先根据以下方式构建得到,包括:
接收注册请求;
判断所述注册请求中是否包含消息订阅页面、传输标识以及业务回调方法;其中,所述消息订阅页面和所述业务回调方法均与所述传输标识对应;
若所述注册请求包含所述消息订阅页面、所述传输标识以及所述业务回调方法,则从当前消息订阅页面列表中检索与所述传输标识对应的消息订阅页面是否存在;
若不存在,则向当前消息订阅页面列表中,添加所述消息订阅页面、所述传输标识以及所述业务回调方法的对应关系记录。
进一步地,所述消息订阅页面列表预先根据以下方式构建得到,进一步包括:
接收注销请求;
判断所述注销请求中是否包含消息订阅页面、传输标识;
若所述注销请求中包含所述消息订阅页面和所述传输标识,则从当前消息订阅页面列表中检索与所述传输标识对应的消息订阅页面是否存在;
若存在,则从当前消息订阅页面列表中移除所述消息订阅页面、所述传输标识,以及所述传输标识对应的业务回调方法的对应关系记录。
进一步地,所述消息订阅页面列表预先根据以下方式构建得到,进一步包括:
接收全局注销请求;
根据所述全局注销请求调用当前消息订阅页面列表中的所有消息订阅页面和所有传输标识;
从当前消息订阅页面列表中依次移除所述所有消息订阅页面、所述所有传输标识,以及所述所有传输标识对应的业务回调方法的对应关系记录。
进一步地,所述确定匹配得到的消息订阅页面对应的消息传输通道之后,进一步包括,从预设的业务回调方法列表中匹配所述传输标识对应的业务回调方法。
进一步地,所述业务回调方法的执行逻辑包括:
获取与所述消息传输请求对应的预设消息内容,得到第一回调结果;
或,
获取与所述消息传输请求对应的预设消息内容,并且对所述预设消息内容进行指定运算,得到第二回调结果;
利用与所述传输标识对应的消息传输通道,将所述第一回调结果或所述第二回调结果推送至所述对应的消息订阅页面。
另一方面,本说明书的一些实施例还提供一种Flutter原生混合开发的消息传输装置,所述装置包括:
接收模块,用于获取消息传输请求;其中,所述消息传输请求的发布端包括Flutter端或原生端;
匹配模块,用于从与所述消息传输请求的发布端对应的消息订阅页面列表中,匹配与所述消息传输请求的传输标识对应的消息订阅页面;
确定模块,用于确定匹配得到的消息订阅页面对应的消息传输通道;
传输模块,用于利用所述消息传输通道将所述消息传输请求推送至所述对应的消息订阅页面。
另一方面,本说明书的一些实施例还提供了一种计算机设备,包括存储器、处理器、以及存储在所述存储器上的计算机程序,所述计算机程序被所述处理器运行时,执行上述方法的指令。
另一方面,本说明书的一些实施例还提供了一种计算机存储介质,其上存储有计算机程序,所述计算机程序被计算机设备的处理器运行时,执行上述方法的指令。
另一方面,本说明书的一些实施例还提供了一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序被计算机设备的处理器运行时,执行上述方法的指令。
本说明书的一些实施例提供的一个或者多个技术方案,至少具有如下的技术效果:
本说明书的实施例自动获取消息传输请求,之后从与消息传输请求的发布端对应的消息订阅页面列表中,匹配与消息传输请求的传输标识对应的消息订阅页面,以根据消息订阅页面确定对应的消息传输通道,实现了基于消息传输请求中的传输标识确定该消息传输请求的消息订阅页面及消息传输通道,与现有原生端与Flutter端之间的通信技术中根据待传输消息对应的传输通道及传输通道调用方法相比,当新增待传输消息时,无需专门对该新增待传输消息新建应的传输通道及传输通道调用方法,而是根据该新增待传输消息的传输标识匹配对应的已有的消息传输通道,并且还能够实现原生端和Flutter端各自内部页面之间的通信,从而解决了应用程序混合开发效率低,开发复杂度和维护成本高的问题。
上述说明仅是本说明书的一些实施例技术方案的概述,为了能够更清楚了解本说明书的一些实施例的技术手段,而可依照说明书的内容予以实施,并且为了让本说明书的一些实施例的上述和其它目的、特征和优点能够更明显易懂,以下特举本说明书的一些实施例的具体实施方式。
附图说明
为了更清楚地说明本说明书的一些实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1示出了本说明书一些实施例中一种Flutter原生混合开发的消息传输方法的实施系统示意图;
图2示出了本说明书一些实施例中一种Flutter原生混合开发的消息传输方法的流程图;
图3为本说明书一些实施例中处理注册请求的步骤示意图;
图4为本说明书一些实施例中处理注销请求的步骤示意图;
图5为本说明书一些实施例中处理全局注销请求的步骤示意图;
图6为本说明书一些实施例中一种Flutter原生混合开发的消息传输装置的结构示意图;
图7为本说明书一些实施例中提供的计算机设备结构示意图。
【附图标记说明】
101、终端;
102、服务器;
601、接收模块;
602、匹配模块;
603、确定模块;
604、传输模块;
702、计算机设备;
704、处理器;
706、存储器;
708、驱动机构;
710、输入/输出接口;
712、输入设备;
714、输出设备;
716、呈现设备;
718、图形用户接口;
720、网络接口;
722、通信链路;
724、通信总线。
具体实施方式
为了使本技术领域的人员更好地理解本说明书中的技术方案,下面将结合本说明书的一些实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的一些实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书保护的范围。
需要说明的是,本文的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本文的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、装置、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。需要说明的是,本申请技术方案中对数据的获取、存储、使用、处理等均符合国家法律法规的相关规定。
如图1所示为本发明实施例一种Flutter原生混合开发的消息传输方法的实施系统示意图,可以包括:终端101以及服务器102,终端101和服务器102之间通过网络进行通信,网络可以包括局域网(Local Area Network,简称为LAN)、广域网(Wide Area Network,简称为WAN)、因特网或其组合,并连接至网站、用户设备(例如计算设备)和后端系统。用户可以通过终端101中的应用程序客户端向服务器102发送消息传输请求,服务器102接收到消息传输请求后,调用对应的消息订阅页面列表,匹配与所述消息传输请求的传输标识对应的消息订阅页面和业务回调方法,触发业务回调方法后能得到对应的回调结果,并将消息传输请求和对应的回调结果通过消息传输通道发送给终端101中应用程序客户端对应的原生端或Flutter端。
在本说明书实施例中,所述服务器102可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(CDN,Content Delivery Network)、以及大数据和人工智能平台等基础云计算服务的云服务器。
在一个可选的实施例中,终端101可以包括但不限于自助终端设备、台式计算机、平板电脑、笔记本电脑、智能可穿戴设备等类型的电子设备。可选的,电子设备上运行的操作系统可以包括但不限于安卓系统、IOS系统、Linux、Windows等。当然,所述终端101并不限于上述具有一定实体的电子设备,其还可以为运行于上述电子设备中的软件。
此外,需要说明的是,图1所示的仅仅是本公开提供的一种应用环境,在实际应用中,还可以包括多个终端101,本说明书不做限制。
图2是本发明实施例提供的一种Flutter原生混合开发的消息传输方法的流程图,本说明书提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的劳动可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的系统或装置产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行。具体的如图2所示,所述方法可以应用于上述的服务器侧,可以包括:
S101:获取消息传输请求;其中,所述消息传输请求的发布端包括Flutter端或原生端;
S102:从与所述消息传输请求的发布端对应的消息订阅页面列表中,匹配与所述消息传输请求的传输标识对应的消息订阅页面;
S103:确定匹配得到的消息订阅页面对应的消息传输通道;
S104:利用所述消息传输通道将所述消息传输请求推送至所述对应的消息订阅页面。
本说明书的实施例自动获取消息传输请求,之后从与消息传输请求的发布端对应的消息订阅页面列表中,匹配与消息传输请求的传输标识对应的消息订阅页面,以根据消息订阅页面确定对应的消息传输通道,实现了基于消息传输请求中的传输标识确定该消息传输请求的消息订阅页面及消息传输通道,与现有原生端与Flutter端之间的通信技术中根据待传输消息对应的传输通道及传输通道调用方法相比,当新增待传输消息时,无需专门对该新增待传输消息新建应的传输通道及传输通道调用方法,而是根据该新增待传输消息的传输标识匹配对应的已有的消息传输通道,并且还能够实现原生端和Flutter端各自内部页面之间的通信,从而解决了应用程序混合开发效率低,开发复杂度和维护成本高的问题。
具体而言,一些实施例中,消息传输请求是由Flutter端或原生端的子页面发出的用于消息传递和信息交互的信号,消息订阅页面是指消息传输请求的接收页面,消息传输通道是用于传输消息传输请求的信道,传输标识为消息传输请求中的一部分,用于标识消息传输请求对应的消息订阅页面信息和消息传输通道信息,Flutter(即Flutter端)是一款开源的应用开发框架,仅通过一套代码库,就能构建精美的、原生平台编译的多平台应用,使用Flutter和原生混合开发可以看作已有原生端开发的进一步扩展,原生端(即原生平台或原生)可以是安卓端等移动应用的自有平台。为了实现应用程序客户端中Flutter和原生之间的相互调用,需要一套广播机制以实现Flutter和原生混合开发的应用程序客户端运行时的跨页面事件通知。需要说明的是,应用程序客户端中跨页面事件通知包括Flutter端到原生端、原生端到Flutter端、Flutter端到Flutter端以及原生端到原生端四种类型,每个类型中又包含了多个子页面之间的信息传输,例如Flutter端到原生端类型的跨页面事件通知中包含Flutter端的子页面到原生端的子页面的跨页面事件通知。
在一些实施例中,为了实现将以上四种类型的跨页面事件通知集成于同一套广播机制中,并不直接发送待传输的消息内容,而是根据待传输的消息作为消息传输请求(该消息传输请求中包含传输标识),根据所述传输标识匹配确定消息订阅页面,确定消息订阅页面后可以根据所述传输标识进一步匹配确定消息传输通道,也可以根据消息订阅页面中的页面标识匹配确定消息传输通道,从而实现利用消息传输通道传递消息传输请求。
参照附图3,在一些实施例中,所述消息订阅页面列表预先根据以下方式构建得到可以包括:
S201:接收注册请求;
S202:判断所述注册请求中是否包含消息订阅页面、传输标识以及业务回调方法;其中,所述消息订阅页面和所述业务回调方法均与所述传输标识对应;
S203:若所述注册请求包含所述消息订阅页面、所述传输标识以及所述业务回调方法,则从当前消息订阅页面列表中检索与所述传输标识对应的消息订阅页面是否存在;
S204:若不存在,则向当前消息订阅页面列表中,添加所述消息订阅页面、所述传输标识以及所述业务回调方法的对应关系记录。
具体而言,一些实施例中,消息订阅页面列表是用于消息传输请求根据对应的传输标识匹配确定对应的消息订阅页面的列表,包含所述消息订阅页面、所述传输标识以及所述业务回调方法的对应关系记录,注册请求是指消息传输请求注册传输标识、消息订阅页面及业务回调方法的对应关系记录的请求,其中,所述业务回调方法与所述传输标识相对应,用于获取回调结果,具体地,一些实施例中,由于业务需求的需要,消息传输请求的传输还需要伴随着相应的数据或信息或计算结果的传输,而通过传输标识触发业务回调方法即可获得回调结果,回调结果中包含所述相应的数据或信息或计算结果,通过引入该传输标识和消息订阅页面、业务回调方法之间的对应关系和调用机制,实现了将消息传输请求与消息传输内容解耦。
一些实施例中,构建消息订阅页面列表是为了确定发出的消息传输请求需要发送到哪里,具体地,构建消息订阅页面列表时首先接收注册请求,并判断所述注册请求中是否包含消息订阅页面、传输标识以及业务回调方法,若所述注册请求中息订阅页面、传输标识以及业务回调方法中任意一个为空,则该注册请求无效,之后再判断当前消息订阅页面列表中是否已注册过内容相同的注册请求,只有该注册请求从未被注册过才能进行注册过程,以避免重复注册造成列表冗余,影响正常的消息订阅页面匹配过程,需要说明的是,当前消息订阅页面列表采用单例模式进行构建,单例模式是指实现整个系统(即整个消息订阅页面列表)中一个类只有一个对象的实例的方式,单例模式具有节省公共资源、方便管理的优点,因此在当前消息订阅页面列表完成注册动作之后,订阅了该消息订阅页面列表的订阅者集合中的其余订阅者能够及时访问、获取更新后的消息订阅页面列表的全局变量。其中,订阅者指订阅了当前消息订阅页面列表的平台,订阅者集合则是当前消息订阅页面列表所有订阅者的集合。
进一步地,一些实施例中,参照附图4,在一些实施例中,所述消息订阅页面列表预先根据以下方式构建得到可以包括:
S301:接收注销请求;
S302:判断所述注销请求中是否包含消息订阅页面、传输标识;
S303:若所述注销请求中包含所述消息订阅页面和所述传输标识,则从当前消息订阅页面列表中检索与所述传输标识对应的消息订阅页面是否存在;
S304:若存在,则从当前消息订阅页面列表中移除所述消息订阅页面、所述传输标识,以及所述传输标识对应的业务回调方法的对应关系记录。
可以理解为,一些实施例中,当一些消息传输请求不符合业务需求,或者一些消息订阅页面随着应用设计的更新迭代被移除,此时消息订阅页面列表中就需要移除所述消息订阅页面、所述传输标识,以及所述传输标识对应的业务回调方法的对应关系记录,具体地,首先需要接收注销请求并判断所述注销请求中是否包含消息订阅页面、传输标识,其中,注销请求是指注销已注册的消息传输请求对应的传输标识、消息订阅页面及业务回调方法的对应关系记录的请求,若所述注销请求中的消息订阅页面、传输标识任意一个为空,则该注销请求无效,之后从当前消息订阅页面列表中检索与所述传输标识对应的消息订阅页面,获得不为空的检索结果后即可从当前消息订阅页面列表中移除所述消息订阅页面、所述传输标识,以及所述传输标识对应的业务回调方法的对应关系记录,并且由于当前消息订阅页面列表采用单例模式进行构建,单例模式是指实现整个系统(即整个消息订阅页面列表)中一个类只有一个对象的实例的方式,提供了访问整个系统的全局访问点,能够节省公共资源、方便管理,因此在当前消息订阅页面列表完成注销动作之后,订阅了该消息订阅页面列表的订阅者集合中的其余订阅者能够及时访问、获取更新后的消息订阅页面列表。
进一步地,在一些实施例中,参照附图5,所述消息订阅页面列表预先根据以下方式构建得到可以包括:
S401:接收全局注销请求;
S402:根据所述全局注销请求调用当前消息订阅页面列表中的所有消息订阅页面和所有传输标识;
S403:从当前消息订阅页面列表中依次移除所述所有消息订阅页面、所述所有传输标识,以及所述所有传输标识对应的业务回调方法的对应关系记录。
具体而言,一些实施例中,例如当Flutter端或原生端中的多个页面需要删除时,此时涉及到对消息订阅页面列表中的所有内容进行清空的问题,具体地,此时需要对全局注销请求进行处理,具体地,全局注销请求是指注销当前消息订阅页面列表中全部已注册的消息传输请求对应的传输标识、消息订阅页面及业务回调方法的对应关系记录的请求,根据所述全局注销请求调用当前消息订阅页面列表中的所有消息订阅页面和所有传输标识,之后从当前消息订阅页面列表中依次移除所述所有消息订阅页面、所述所有传输标识,以及所述所有传输标识对应的业务回调方法的对应关系记录直至当前消息订阅页面列表为空,并且由于当前消息订阅页面列表采用单例模式进行构建,单例模式是指实现整个系统(即整个消息订阅页面列表)中一个类只有一个对象的实例的方式,提供了访问整个系统的全局访问点,能够节省公共资源、方便管理,因此在当前消息订阅页面列表完成全局注销动作之后,订阅了该消息订阅页面列表的订阅者集合中的其余订阅者能够及时访问、获取更新后的消息订阅页面列表。
在一些实施例中,所述确定匹配得到的消息订阅页面对应的消息传输通道之后,进一步可以包括,从预设的业务回调方法列表中匹配所述传输标识对应的业务回调方法。
进一步地,在一些实施例中,所述业务回调方法的执行逻辑包括:
获取与所述消息传输请求对应的预设消息内容,得到第一回调结果;
或,获取与所述消息传输请求对应的预设消息内容,并且对所述预设消息内容进行指定运算,得到第二回调结果;
利用与所述传输标识对应的消息传输通道,将所述第一回调结果或所述第二回调结果推送至所述对应的消息订阅页面。
可以理解为,一些实施例中,业务回调方法是根据消息传输请求中的传输标识匹配得到的,用于获取与所述消息传输请求对应的预设消息内容,或获取与所述消息传输请求对应的预设消息内容,并且对所述预设消息内容进行指定运算,从而得到对应的第一回调结果或第二回调结果的方法,所述第一回调结果或第二回调结果可以复用当前消息传输请求使用的消息传输通道进行传输,一些实施例中,还可以在当前消息传输请求通过对应的消息传输通道传输至对应的消息订阅页面后,根据当前消息传输请求中的传输标识触发消息订阅页面所在端中预设的业务回调方法以获得相应的回调结果。
需要说明的是,尽管在上述实施例及附图中以特定顺序描述了本发明方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
与上述的方法对应,本说明书的一些实施例还提供了一种Flutter原生混合开发的消息传输装置,参考图6所示,在一些实施例中,所述装置可以包括:
接收模块601,用于获取消息传输请求;其中,所述消息传输请求的发布端包括Flutter端或原生端;
匹配模块602,用于从与所述消息传输请求的发布端对应的消息订阅页面列表中,匹配与所述消息传输请求的传输标识对应的消息订阅页面;
确定模块603,用于确定匹配得到的消息订阅页面对应的消息传输通道;
传输模块604,用于利用所述消息传输通道将所述消息传输请求推送至所述对应的消息订阅页面。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本说明书时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
需要说明的是,本说明书的实施例中,所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权同意且经过各方充分授权的信息和数据。
本说明书的实施例还提供一种计算机设备。如图7所示,在本说明书一些实施例中,所述计算机设备702可以包括一个或多个处理器704,诸如一个或多个中央处理单元(CPU)或图形处理器(GPU),每个处理单元可以实现一个或多个硬件线程。计算机设备702还可以包括任何存储器706,其用于存储诸如代码、设置、数据等之类的任何种类的信息,一具体实施例中,存储器706上并可在处理器704上运行的计算机程序,所述计算机程序被所述处理器704运行时,可以执行上述任一实施例所述的方法的指令。非限制性的,比如,存储器706可以包括以下任一项或多种组合:任何类型的RAM,任何类型的ROM,闪存设备,硬盘,光盘等。更一般地,任何存储器都可以使用任何技术来存储信息。进一步地,任何存储器可以提供信息的易失性或非易失性保留。进一步地,任何存储器可以表示计算机设备702的固定或可移除部件。在一种情况下,当处理器704执行被存储在任何存储器或存储器的组合中的相关联的指令时,计算机设备702可以执行相关联指令的任一操作。计算机设备702还包括用于与任何存储器交互的一个或多个驱动机构708,诸如硬盘驱动机构、光盘驱动机构等。
计算机设备702还可以包括输入/输出接口710(I/O),其用于接收各种输入(经由输入设备712)和用于提供各种输出(经由输出设备714)。一个具体输出机构可以包括呈现设备716和相关联的图形用户接口718(GUI)。在其他实施例中,还可以不包括输入/输出接口710(I/O)、输入设备712以及输出设备714,仅作为网络中的一台计算机设备。计算机设备702还可以包括一个或多个网络接口720,其用于经由一个或多个通信链路722与其他设备交换数据。一个或多个通信总线724将上文所描述的部件耦合在一起。
通信链路722可以以任何方式实现,例如,通过局域网、广域网(例如,因特网)、点对点连接等、或其任何组合。通信链路722可以包括由任何协议或协议组合支配的硬连线链路、无线链路、路由器、网关功能、名称服务器等的任何组合。
本申请是参照本说明书一些实施例的方法、设备(系统)、计算机可读存储介质和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理器的处理器以产生一个机器,使得通过计算机或其他可编程数据处理器的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理器以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理器上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算机设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算机设备访问的信息。按照本说明书中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
本领域技术人员应明白,本说明书的实施例可提供为方法、系统或计算机程序产品。因此,本说明书实施例可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本说明书实施例可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书实施例,在这些分布式计算环境中,由通过通信网络而被连接的远程处理器来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
还应理解,在本说明书实施例中,术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系。例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本说明书实施例的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (10)
1.一种Flutter原生混合开发的消息传输方法,其特征在于,所述方法包括:
获取消息传输请求;其中,所述消息传输请求的发布端包括Flutter端或原生端;
从与所述消息传输请求的发布端对应的消息订阅页面列表中,匹配与所述消息传输请求的传输标识对应的消息订阅页面;
确定匹配得到的消息订阅页面对应的消息传输通道;
利用所述消息传输通道将所述消息传输请求推送至所述对应的消息订阅页面。
2.根据权利要求1所述的方法,其特征在于,所述消息订阅页面列表预先根据以下方式构建得到,包括:
接收注册请求;
判断所述注册请求中是否包含消息订阅页面、传输标识以及业务回调方法;其中,所述消息订阅页面和所述业务回调方法均与所述传输标识对应;
若所述注册请求包含所述消息订阅页面、所述传输标识以及所述业务回调方法,则从当前消息订阅页面列表中检索与所述传输标识对应的消息订阅页面是否存在;
若不存在,则向当前消息订阅页面列表中,添加所述消息订阅页面、所述传输标识以及所述业务回调方法的对应关系记录。
3.根据权利要求2所述的方法,其特征在于,所述消息订阅页面列表预先根据以下方式构建得到,进一步包括:
接收注销请求;
判断所述注销请求中是否包含消息订阅页面、传输标识;
若所述注销请求中包含所述消息订阅页面和所述传输标识,则从当前消息订阅页面列表中检索与所述传输标识对应的消息订阅页面是否存在;
若存在,则从当前消息订阅页面列表中移除所述消息订阅页面、所述传输标识,以及所述传输标识对应的业务回调方法的对应关系记录。
4.根据权利要求3所述的方法,其特征在于,所述消息订阅页面列表预先根据以下方式构建得到,进一步包括:
接收全局注销请求;
根据所述全局注销请求调用当前消息订阅页面列表中的所有消息订阅页面和所有传输标识;
从当前消息订阅页面列表中依次移除所述所有消息订阅页面、所述所有传输标识,以及所述所有传输标识对应的业务回调方法的对应关系记录。
5.根据权利要求1所述的方法,其特征在于,所述确定匹配得到的消息订阅页面对应的消息传输通道之后,进一步包括,从预设的业务回调方法列表中匹配所述传输标识对应的业务回调方法。
6.根据权利要求5所述的方法,其特征在于,所述业务回调方法的执行逻辑包括:
获取与所述消息传输请求对应的预设消息内容,得到第一回调结果;
或,
获取与所述消息传输请求对应的预设消息内容,并且对所述预设消息内容进行指定运算,得到第二回调结果;
利用与所述传输标识对应的消息传输通道,将所述第一回调结果或所述第二回调结果推送至所述对应的消息订阅页面。
7.一种Flutter原生混合开发的消息传输装置,其特征在于,所述装置包括:
接收模块,用于获取消息传输请求;其中,所述消息传输请求的发布端包括Flutter端或原生端;
匹配模块,用于从与所述消息传输请求的发布端对应的消息订阅页面列表中,匹配与所述消息传输请求的传输标识对应的消息订阅页面;
确定模块,用于确定匹配得到的消息订阅页面对应的消息传输通道;
传输模块,用于利用所述消息传输通道将所述消息传输请求推送至所述对应的消息订阅页面。
8.一种计算机设备,包括存储器、处理器、以及存储在所述存储器上的计算机程序,其特征在于,所述计算机程序被所述处理器运行时,执行根据权利要求1-6任意一项所述方法的指令。
9.一种计算机存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被计算机设备的处理器运行时,执行根据权利要求1-6任意一项所述方法的指令。
10.一种计算机程序产品,其特征在于,所述计算机程序产品包括计算机程序,所述计算机程序被处理器运行时,执行根据权利要求1-6任意一项所述方法的指令。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310192928.3A CN116302602A (zh) | 2023-03-02 | 2023-03-02 | 一种Flutter原生混合开发的消息传输方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310192928.3A CN116302602A (zh) | 2023-03-02 | 2023-03-02 | 一种Flutter原生混合开发的消息传输方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116302602A true CN116302602A (zh) | 2023-06-23 |
Family
ID=86788154
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310192928.3A Pending CN116302602A (zh) | 2023-03-02 | 2023-03-02 | 一种Flutter原生混合开发的消息传输方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116302602A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116795356A (zh) * | 2023-08-21 | 2023-09-22 | 山东为农信息科技有限公司 | Flutter与原生平台的混合开发方法、系统及装置 |
-
2023
- 2023-03-02 CN CN202310192928.3A patent/CN116302602A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116795356A (zh) * | 2023-08-21 | 2023-09-22 | 山东为农信息科技有限公司 | Flutter与原生平台的混合开发方法、系统及装置 |
CN116795356B (zh) * | 2023-08-21 | 2023-11-24 | 山东为农信息科技有限公司 | Flutter与原生平台的混合开发方法、系统及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10732861B2 (en) | Generating and providing low-latency cached content | |
CN111078504A (zh) | 一种分布式调用链跟踪方法、装置、计算机设备及存储介质 | |
CN111399756B (zh) | 一种数据存储方法、数据下载方法及装置 | |
CN102591724A (zh) | 消息交互方法及装置 | |
CN112202744B (zh) | 一种多系统数据通信方法和装置 | |
US11531526B1 (en) | Creating portable serverless applications | |
CN111786984A (zh) | Pod通信连接方法、装置及电子设备、存储介质 | |
CN111865905B (zh) | 一种基于Ukey的通信方法、装置和存储介质 | |
CN116302602A (zh) | 一种Flutter原生混合开发的消息传输方法及装置 | |
CN112395098B (zh) | 应用程序接口调用方法、装置、存储介质和电子设备 | |
CN110795741A (zh) | 对数据进行安全性处理的方法和装置 | |
CN114040020A (zh) | 跨集群服务调用的方法及系统 | |
CN114327710B (zh) | 一种函数管理方法、管理装置、终端设备及可读存储介质 | |
CN109343970B (zh) | 基于应用程序的操作方法、装置、电子设备及计算机介质 | |
US11494184B1 (en) | Creation of transportability container files for serverless applications | |
US20120096096A1 (en) | Mobile communication terminal to provide widget expansion function using message communication, and operation method of the mobile communication terminal | |
CN112114804A (zh) | 应用程序的生成方法、装置及系统 | |
CN111581576A (zh) | 基于微服务的开发处理方法、装置及存储介质 | |
CN116737662A (zh) | 业务数据处理的方法、装置、电子设备和存储介质 | |
CN112491943A (zh) | 数据请求方法、装置、存储介质和电子设备 | |
US20210144048A1 (en) | Method and apparatus for outputting information | |
US20220004403A1 (en) | Methods of providing an integrated interface that includes a virtual mobile device | |
CN104346228A (zh) | 共享应用程序的方法及终端 | |
CN113765983A (zh) | 一种站点服务的部署方法和装置 | |
CN109600403B (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 |