一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于Flutter的App动态发布方法、电子设备及存储介质与流程

2022-11-16 08:59:26 来源:中国专利 TAG:

一种基于flutter的app动态发布方法、电子设备及存储介质
技术领域
1.本发明涉及计算机领域,尤其涉及一种基于flutter的app动态发布方法、电子设备及存储介质。


背景技术:

2.动态更新应用程序可以减少发布过程的成本,不需要用户去应用市场升级app(application,应用程序),使得软件内容的变化更简单,可以满足部分内容快速投放市场的需求。
3.现有技术中,移动客户端,比如手机或pad中的app(application,应用程序)无论是ios系统(苹果公司开发的移动操作系统)还是android(安卓)系统的原生应用都无法动态发布新的内容,原生的应用开发后不能及时的把新增、更新或删除的内容动态发布到app(application,应用程序)中,需要经历提交审核、审核中和审核后等过程,只有审核通过后方可发布,另外审核过程中可能还会出现被拒绝需要修改的可能性。所以一个功能的发布从开发完成到可以更新应用需要经历较长的时间(可能需要几天甚至更久),从而出现了无法及时更新应用内容和发布周期长等问题。


技术实现要素:

4.鉴于上述问题,提供了本发明实施例以便提供一种克服上述问题或者至少部分地解决上述问题的一种基于flutter的app动态发布方法、电子设备及存储介质。
5.依据本发明的第一方面,提供了一种动态更新的方法,包括:
6.获取当前页面的页面跳转指令,所述页面跳转指令包括页面路由标识符;解析所述路由标识符并获得路由名,若所述路由名不存在路由表中,则基于flutter开发目标页面,编译生成对应的web页面,并更新所述路由表,新增所述路由名和该web页面之间的路由信息;将所述的web页面和所述路由表进行发布。
7.作为本发明的进一步改进,所述“获取当前页面的页面跳转指令”之前还包括:发送打开当前页面的渲染请求,所述渲染请求携带业务数据;根据所述业务数据显示当前页面,所述当前页面包括页面的基本数据和路由表。
8.作为本发明的进一步改进,所述方法还包括:所述页面路由标识符是一个字符串,包含前缀、页面名称和页面参数。
9.作为本发明的进一步改进,所述方法还包括:所述路由表包括当前应用程序中所有页面之间的路由映射关系;所述路由映射关系包括路由名和对应的目标页面。
10.作为本发明的进一步改进,所述方法还包括:所述应用程序中的页面包括纯原生页面、flutter生成的原生页面和flutter生成的web页面;其中,所述纯原生页面是ios系统和android系统自己创建的页面,所述flutter生成的原生页面和flutter生成的web页面是利用flutter实现的一套代码运行在若干个系统平台上所产生的页面。
11.作为本发明的进一步改进,所述方法还包括:若更新目标页面的部分内容时,是通
过开发更新后的目标页面,并同步更新路由表中对应的路由信息,使得跳转到目标页面是更新后的页面而非更新前的页面;若删除目标页面,通过删除或修改所述路由表对应的路由信息,使得跳转目标页面不是待删除页面。
12.作为本发明的进一步改进,所述方法还包括:若发布应用程序时,将所述flutter生成的web页面变成flutter生成的原生页面;更新路由表对应的路由信息,将所述路由信息中的目标页面从所述flutter生成的web页面变成所述flutter生成的原生页面;将所述的flutter生成的原生页面和所述路由信息打包到应用程序中进行发布。
13.作为本发明的进一步改进,所述方法包括:所述基本数据包括标题、子标题、文本内容和图片。
14.根据本发明实施例的再一方面,提供一种电子设备,该电子设备包括存储器和处理器,所述存储器用于存储计算机程序,所述处理器,用于执行所述存储器中存储的计算机程序,且所述计算机程序被执行时,实现上述动态发布的方法。
15.根据本公开实施例的再一方面,提供一种存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述动态发布的方法。
16.本发明具有以下有益效果:本发明可以基于flutter开发ios应用、android应用和web应用,再结合配置路由的方式达到动态发布新的内容,提高了动态发布的灵活性。所述路由支持跳转纯原生页面、flutter生成的原生页面或flutter生成的web页面。当出现紧急更新内容时,可以使用flutter生成web页面并更新路由表,将目标页面配置为该web页面,再将该web页面和路由表进行发布,实现了对紧急更新内容的动态发布。但是由于所述flutter生成的web页面性能差于纯原生应用,当应用程序(app)到达发布周期时,将之前使用flutter生成的web页面变成flutter生成的原生页面,这些flutter原生页面性能接近ios或android的纯原生页面,提高了页面的性能,以此达到动态发布和性能的平衡。
附图说明
17.图1是本发明实施例提供的一种基于flutter动态发布方法的步骤流程图。
18.图2是本发明实施例提供的一种电子设备的结构框图。
具体实施方式
19.以下将结合附图所示的具体实施方式对本发明进行详细描述。但这些实施方式并不限制本发明,本领域的普通技术人员根据这些实施方式所做出的结构、方法、或功能上的变换均包含在本发明的保护范围内。
20.需要说明的是,术语“包括”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。此外,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。
21.虽然本技术提供了如下述实施方式或流程图1所述的方法操作步骤,但是基于常规或者无需创造性的劳动,所述方法在逻辑性上不存在必要因果关系的步骤中,这些步骤的执行顺序不限于本技术实施方式中所提供的执行顺序。图1是本发明实施例提供了一种基于flutter动态发布方法的步骤流程图,如图1所示,该方法可以包括:
22.步骤101,获取当前页面的页面跳转指令;
23.flutter是一种移动开发平台,用于创建高性跨平台的移动应用程序。flutter对移动设备中的应用程序进行优化,可用来解决动态化更新应用程序的问题。在引入flutter框架技术来实现一个应用程序时,有时候一个应用程序只有部分页面是由flutter实现的,比如我们常用的咸鱼应用程序(app),它的宝贝详情页面是由flutter实现的,这种开发模式被称为混合开发。
24.当用户想打开当前页面之前,先向服务器发起打开当前页面的渲染请求,所述的渲染请求携带着业务数据,服务器根据所述渲染请求返回对应的渲染页面,该渲染页面就是用户想要打开的当前页面,该页面内容包括页面的基本数据,比如标题、子标题、文本内容和图片等,还包括路由表信息,该路由表中包含了各种路由信息,控制着页面之间的跳转。如果用户触发了页面跳转操作,数据处理模块的业务层可获取该页面跳转指令,页面跳转指令中可携带页面路由标识符。所述页面路由标识符是一个字符串,包含前缀、页面名称和页面参数,例如某个页面路由标识是qcc://detailnews?unqiue=123456789,则前缀是qcc,bossdynamic是页面名称,也是解析后的路由名,问号(?)后的是页面参数,这个页面参数是可选的,可以是0个,也可以是多个,比如qcc://detailnews对应的页面参数就是0个,而qcc://detailnews?unique=xxxx&personid=111&personname=jack对应的页面参数就是多个。所以页面路由标识符中的页面参数不是固定的,不同页面有不同的参数,具体的参数信息是在执行具体的跳转页面过程中获取得到的。
25.一个应用程序(app)中包含的页面类型是不同的,对于显示相同内容但是页面的类型不同的两个页面来说,为了区分原生页面和web页面,设定页面路由标识符的前缀是不同的。比如flutter产生的原生页面和纯原生页面是一样的,其页面标识符是qcc://detailnews?unqiue=123456789;而flutter产生的web页面或原生web页面是一样的,其页面标识符是一个合法的web地址,如https://detailnews.qcc.com?id=xxx,所述web页面路由标识符其实是一个简写方式,是qcc://webpage?url=https://detailnews.qcc.com?id=xxx的简写形式。所有的web地址形式的路由标识符都走同一个路由名对应的页面逻辑,比如webpage,具体要跳转的目标页面是根据参数url进行决定的。
26.步骤102,解析页面跳转指令并查找路由表,获取跳转的目标页面;
27.获取所述的页面跳转指令,对其进行解析获得路由名称和目标页面。比如根据上述flutter产生的原生页面的页面路由标识符解析获得路由名是detailnews,再根据解析得到的路由名遍历路由表,判断该路由表中是否存在所述的路由名,如果存在则获取该路由名对应的目标页面,并控制当前页面到目标页面的跳转。当所述路由名不在所述路由表中,则通过后期的配置来动态更新该路由表。另外,根据路由名还可以去匹配需要执行的其他行为,不一定是跳转并打开目标,也许是其他逻辑,比如退出登录等。
28.于一具体实施例中,路由表中的路由名可记为@routername,用于区分某个应用程序中所有页面的标记,跳转指令中携带的页面路由标记符为qcc://companydetailpage?unqiue=123456789,解析该页面路由标记符得到路由名是companydetailpage,若路由表中的某个路由名@routername与companydetailpage匹配上了,则执行进入companydetailpage对应的目标页面,实现当前页面到companydetailpage对应目标页面的跳转。
29.步骤103,若目标页面不在路由表,则基于flutter开发目标页面并编译产生web页面,更新路由表,新增路由名和该web页面之间的路由信息;
30.步骤104,将web页面和路由表进行发布;
31.如果解析获得的路由名不存在于所述路由表时,说明该目标页面可能是新增的内容,则基于flutter开发该目标页面。flutter支持一套代码运行在ios、android、pc以及浏览器上,可以很好的解决多平台一致性的问题。当应用程序遇到需要紧急更新的内容时,比如影响整个应用程序正常运行的紧急补丁,此时不能等到应用程序的发布周期了,为了缩短内容更新时间,可以基于flutter开发目标页面,对其进行编译产生对应的web页面,同时更新路由表,将新的目标页面配置为用flutter生成的web页面,利用web页面的实时性特点达到动态更新内容的目的,用户可以不用去应用商城下载应用程序就可以体验更新的内容。
32.当需要更新的是页面上的部分内容时,比如替换当前页面的一张图片,此时复用更新前的页面代码使用flutter重新开发一个更新后的目标页面,唯一修改的地方就是将需要替换的图片替换一下,这样节省了开发的时间和成本,同时修改路由表中对应的路由信息,将之前跳转到更新前页面的路由改成跳转到更新后的目标页面路由。同理,若想删除某个网页,也只需要修改路由信息,让原跳转到待删除网页的路由删除或者修改成跳转到其他网页,使得所有跳转的目标网页都不是该待删除的网页,从而实现删除该网页的功能。
33.于一具体实施例中,例如,原来一功能新闻只有列表页page1,只能查看当前新闻列表,但是新闻列表对应的新闻详情是看不到的。现在需增加该项功能,即点击page1中的某个新闻列表,就能跳转到这条新闻列表的详情页page2。新增的功能并非是在原有page1上修改,而是在复用page1代码的基础上使用flutter开发一个新增此功能的页面page1_new,并修改路由,将之前跳转到目标页page1的路由改成跳转到page1_new。同样的,若要删除页面page1,通过修改路由表,删除或者修改跳转到page1的路由信息,使得page1页面不成为目标页面,实现删除page1的功能。
34.于一具体实施例中,例如,根据上述新闻详情页查看路由信息,若不存在路由名是page2的路由时,可基于flutter先开发一个page2的目标页面,对其进行编译产生对应的web页面,假设page2的页面路由标识符是https://detailnews.qcc.com?id=xxx,其中id=xxx是页面参数,表示具体是第xxx条新闻。它是一种web类型,是qcc://webpage?url=https://detailnews.qcc.com?id=xxx的简写形式,所以配置的路由名是都是相同的,比如都是webpage,对应的目标页面是page2是通过url参数区别的,最后将该web页面和路由表进行发布。当点击某条新闻列表时,可以通过新增的路由信息跳转至flutter生成的page2页面并显示,这样可以不用等到应用程序的发布周期,也能及时把新功能更新到应用程序中。
35.于一具体实施例中,跳转的目标页面可以是多个。具体地,假设当前页面有两个按钮,这两个按钮分别对应两个页面路由标识符,做如下定义:
[0036][0037]
当点击第一个按钮时,获取页面跳转指令进而获得页面路由标识符"router":"qcc://detailnews?id=xxx",对其进行解析获得路由名为detailnews,根据该路由名去查找路由表,根据路由表中满足条件的路由信息实现页面跳转,其中所述页面路由标识的页面参数是不固定的,在具体的页面跳转过程中获取用户需要的参数,进而跳转到对应的目标页面。点击第二个按钮时,不同于前面的路由方式,这里的路由标识符是一个网站地址(http://或https://开头),在解析路由标识符的时候,不需要提取对应的路由名,因为所有这种web地址类型的路由标识符都是指向同一个页面,这个页面是一个能打开web的容器页面,比如qccwebview,这种类型的路由标识符一般给出的是简写形式。
[0038]
当应用程序(app)到达发布周期时,将之前通过flutter产生的web网页替换成flutter生成的原生页面,并打包进应用程序中,同时更新路由表,使得将原先flutter产生的web网页更新成flutter产生的原生网页,因为web页面和flutter生成的原生页面相比,加载较慢且性能较差。所以当应用程序在发布时,将web页面切换为flutter生成的原生页面不仅提升了应用程序的速度和性能,同时也改善了用户的体验效果。
[0039]
于一具体实施例中,继上述新闻详情列表而言,当发布应用程序时,将flutter生成的原生页面替换web页面,对应web页面路由信息改成flutter生成的原生页面路由,即将新闻列表的新闻详情路由更新为qcc://detailnews?id=xxx。
[0040]
本发明一实施例还提供一种电子设备200,如图2所示,所述电子设备可以一个或多个处理器201以及与处理器201连接的一个或多个存储器202。电子设备200还可以包括输入接口203和输出接口204,用于与另一装置或系统进行通信。电子设备200中的处理器201调用存储在存储器202中的程序代码,以执行上述实例中基于flutter动态发布的方法。
[0041]
本发明实施例还提供一个存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如上任意一项所述基于flutter动态发布的方法。
[0042]
综上,本发明通过结合flutter框架技术和配置路由的方式实现了应用程序动态发布的效果。当新增页面或更新部分页面内容时,使用flutter开发新的页面,再编译生成web页面后部署到服务器端,并结合配置路由的方式将目标页面配置为用flutter生成的web页面,用户可以同步看到gen更新的内容,达到动态更新的目的,节省了用户去应用商城下载应用程序的时间和成本。当应用程序到达发布周期时,将之前用flutter生成的web页面改成flutter生成的原生页面打包到应用程序中,同时更新对应的路由信息,使得进入目
标页面时打开的是这些用flutter生成的原生页面,这些页面的性能最接近ios或android的纯原生页面,以此达到动态发布和性能的平衡,改善用户的体验感。同时基于flutter开发的页面可以在多平台上共用代码,提高了开发的速度,减少了后期运维的成本和时间。
[0043]
应当理解,虽然本说明书按照实施方式加以描述,但并非每个实施方式仅包含一个独立的技术方案,说明书的这种叙述方式仅仅是为清楚起见,本领域技术人员应当将说明书作为一个整体,各实施方式中的技术方案也可以经适当组合,形成本领域技术人员可以理解的其他实施方式。
[0044]
上文所列出的一系列的详细说明仅仅是针对本发明的可行性实施方式的具体说明,它们并非用以限制本发明的保护范围,凡未脱离本发明技艺精神所作的等效实施方式或变更均应包含在本发明的保护范围之内。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献