公开/公告号CN116360744A
专利类型发明专利
公开/公告日2023-06-30
原文格式PDF
申请/专利权人 厦门最有料数字科技有限公司;
申请/专利号CN202310076331.2
发明设计人 范贺魁;
申请日2023-02-08
分类号G06F8/30(2018.01);
代理机构福州顺升知识产权代理事务所(普通合伙) 35242;
代理人陈如燕
地址 361000 福建省厦门市思明区前埔路506-508号国金广场B栋5层02单元
入库时间 2024-01-17 01:13:28
法律状态公告日
法律状态信息
法律状态
2023-07-18
实质审查的生效 IPC(主分类):G06F 8/30 专利申请号:2023100763312 申请日:20230208
实质审查的生效
2023-06-30
公开
发明专利申请公布
技术领域
本发明涉及软件开发技术领域,具体为一种基于Flutter&Native混合开发模式下的APP网络请求框架构建方法。
背景技术
目前大多数开发者会采用第三方混合开发框架(如Flutter Boost、Thrio、QFlutter等)进行混合开发。第三方混合开发框架大都提供了混合路由栈管理、生命周期监听、路由相关事件通知机制等基础交互能力,但对于混合式网络请求框架的探索较少。在构建Flutter&Native混合开发模式下的网络请求框架时,目前大多采用以下两种方式:
1.在混合开发模式中封装两套网络请求框架,在Native代码中使用Native代码封装的网络请求框架,在Flutter代码中使用Dart代码封装的网络请求框架;
2.是通过第三方混合开发框架提供的数据传递机制,实现对网络请求框架的封装。
但是上述方法存在以下缺点:
1.增加了代码维护成本,当有网络接口请求逻辑发生变更时,需要同时维护两端的网络请求框架代码;
2.可能会出现网络接口请求时原生和flutter端请求头信息不同步的问题,给应用的稳定性带来极大挑战。
因此,针对上述问题提出一种基于Flutter&Native混合开发模式下的APP网络请求框架构建方法。
发明内容
本发明的目的在于提供一种基于Flutter&Native混合开发模式下的APP网络请求框架构建方法,以解决上述背景技术中提出的问题。
为实现上述目的,本发明提供如下技术方案:
一种基于Flutter&Native混合开发模式下的APP网络请求框架构建方法,包括请求头信息封装、网络接口请求返回数据异常情况逻辑封装、Flutter&Native信息传递,具体包括如下步骤:
S1、在Native端实现对网络接口请求头(header)信息获取方法的封装;
S2、在Native端实现对网络接口请求返回数据异常情况的逻辑处理方法的封装;
S3、通过MethodChannel构建Flutter和Native之间通信通道:
S4、在Flutter端通过MethodChannel通道发起通信,实现从Native端获取网络接口请求头(header)信息;
S5、在Flutter端通过MethodChannel通道发起通信,实现对Flutter端网络接口请求返回数据异常情况的逻辑处理。
作为一种优选方案,所述MethodChannel用于Flutter与Native端相互调用,调用后返回结果,具体用于Native端主动调用及Flutter主动调用。
作为一种优选方案,步骤S1-S5中,使用code作为网络接口请求成功或失败的标识,code值为200表示网络接口请求成功,返回业务层数据,否则表示网络接口请求异常,根据code值进行相应的异常处理。
作为一种优选方案,所述Native端网络请求框架基于retrofit框架实现。
作为一种优选方案,所述Flutter模块网络请求框架基于dio框架实现。
由上述本发明提供的技术方案可以看出,本发明提供的一种基于Flutter&Native混合开发模式下的APP网络请求框架构建方法,有益效果是:通过使得Flutter端无需实现网络接口请求头(header)中各参数的获取和网络接口请求返回数据基础数据的逻辑处理,无论是Flutter端还是Native端,网络请求头信息中各参数的获取均在Native端实现,这样就保证了混合开发过程中网络接口请求头信息的一致性,从而提高应用在使用过程中的稳定性,降低了Flutter端代码维护成本。
附图说明
图1为本发明一种基于Flutter&Native混合开发模式下的APP网络请求框架构建方法结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
为了更好地理解上述技术方案,下面将结合说明书附图以及具体实施方式对上述技术方案进行详细的说明。
如图1所示,本发明实施例提供一种基于Flutter&Native混合开发模式下的APP网络请求框架构建方法,使Flutter端的网络请求框架可以间接采用Native端封装的网络接口请求头信息和网络接口请求返回数据异常情况的逻辑处理方法,包括:请求头信息封装、网络接口请求返回数据异常情况逻辑封装、Flutter&Native信息传递。
本方法的实现分为以下几步:
1)在Native端实现对网络接口请求头(header)信息获取方法的封装;
2)在Native端实现对网络接口请求返回数据异常情况的逻辑处理方法的封装;
3)通过MethodChannel构建Flutter和Native之间通信通道;
4)在Flutter端通过MethodChannel通道发起通信,实现从Native端获取网络接口请求头(header)信息;
5)在Flutter端通过MethodChannel通道发起通信,实现对Flutter端网络接口请求返回数据异常情况的逻辑处理;
通过本发明使得Flutter端无需实现网络接口请求头(header)中各参数的获取和网络接口请求返回数据基础数据的逻辑处理,无论是Flutter端还是Native端,网络请求头信息中各参数的获取均在Native端实现,这样就保证了混合开发过程中网络接口请求头信息的一致性,从而提高应用在使用过程中的稳定性,降低了Flutter端代码维护成本。
下面将结合附图对本发明实施例作进一步地详细描述:
请参阅图1,其中:
MethodChannel:Flutter与Native端相互调用,调用后可以返回结果,可以Native端主动调用,也可以Flutter主动调用,属于双向通信;
code:网络接口请求成功或失败的标识,可以自定义。一般使用code值为200表示网络接口请求成功,返回业务层数据,否则表示网络接口请求异常,根据code值进行相应的异常处理;
图1右侧部分为Native端的实现方式,包含Native网络请求框架实现、网络接口请求头信息封装、网络请求返回数据的封装;
Native端网络请求框架基于retrofit框架实现;
Native端网络请求头信息的封装一般针对接口请求通用参数的封装,由于通常会包含一些需要及时更新的参数,所以需要保证header中信息的准确性和及时性;
Native端网络请求返回数据的封装主要针对接口请求返回的底层数据结构的封装,剥离业务层的数据结构,从而能够实现与Flutter模块底层数据结构共用。
图1左侧部分为Flutter模块的实现方式,包含Flutter网络请求框架实现、网络接口请求头信息获取、网络请求返回数据的封装;
Flutter模块网络请求框架基于dio框架实现;
Flutter模块网络请求头信息的获取是通过MethodChannel通道发起通信,实现从Native端获取网络接口请求头(header)信息。从而避免在Flutter模块重复实现获取header信息,同时保证了header信息的准确性和及时性;
Flutter模块网络请求返回数据的封装主要是针对Flutter模块接口请求返回的底层数据结构和业务层数据结构进行剥离,把Flutter模块底层数据结构的逻辑处理响应通过MethodChannel通道向Native端发起通信,从而实现共用Native端网络请求返回数据的封装方法。
尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。
机译: 一种用于从云中播放应用程序的方法,一种用于通过特定电信系统流式传输和回放应用程序(APP)的电信网络,以及一种用于流式传输和回放应用程序(APP)的电信网络的用途
机译: 在载有金属整体反应器的反应器中,在基于碱的反应条件下,在气体和液相混合物的混合物上进行催化异质反应的方法,反应时间应足以产生碳反应器中的氢和二硝基甲苯混合物上的氢催化剂和二硝基甲苯的混合物的钝化和失活副产物和方法在整相反应条件下,在正相和钯作为金属的条件下,整体催化剂的阳离子碳质和钝化副产品。
机译: 一种基于字典类型的字典自动构建方法,其记录介质及基于字典类型的字典自动构建方法