一种基于Flutter框架的多窗口交互方法及装置制造方法及图纸

技术编号:37968039 阅读:5 留言:0更新日期:2023-06-30 09:43
本发明专利技术公开了一种基于Flutter框架的多窗口交互方法及装置,所述方法包括:根据预设流程在Window操作系统中的C++层中创建至少两个Flutter框架;其中,每一Flutter框架下包含至少一个窗口;在Window操作系统中引入预设插件;其中,预设插件包含一个多窗口管理器,每一窗口通过一个预设通道与多窗口管理器进行通信;当检测到任一窗口存在消息转发时,控制多窗口管理器通过预设通道转发至对应的目标窗口。本发明专利技术提供的一种基于Flutter框架的多窗口交互方法及装置,可以在不改动现有Flutter框架引擎的前提下实现多窗口的间的交互,降低开发难度,提高用户的使用体验。提高用户的使用体验。提高用户的使用体验。

【技术实现步骤摘要】
一种基于Flutter框架的多窗口交互方法及装置


[0001]本专利技术涉及计算机
,特别是涉及一种基于Flutter框架的多窗口交互方法及装置。

技术介绍

[0002]Flutter是Google开源的用于构建移动UI(User Interface,用户界面)工具包,是一个用于构建跨平台桌面应用的开源SDK(SoftwareDevelopment Kit,软件开发工具包),可以快速地在Android、iOS系统上构建高质量的桌面应用程序。Flutter支持移动、Web、桌面和嵌入式平台,除了Windows之外,Flutter 3已实现稳定支持macOS和Linux等操作系统的桌面应用开发。截止目前的Flutter 3.0.5-stable版本,当在Window操作系统上构建应用程序时,Flutter Desktop架构下的应用由一个FlutterWindow组成,FlutterWindow中包含了一个Win32的主窗口,Win32窗口为原生C/C++Windows下的应用程序窗口。Flutter框架在Windows系统上为Win32窗口构建应用程序时,仅支持单窗口的桌面应用开发,无法支持多窗口的应用,这严重限制了桌面应用的功能开发与用户使用体验。

技术实现思路

[0003]本申请提供了一种基于Flutter框架的多窗口交互方法及装置,在不改动现有Flutter框架引擎的前提下实现多窗口的间的交互,提高用户的使用体验。
[0004]第一方面,本申请提供了一种基于Flutter框架的多窗口交互方法,包括:
[0005]根据预设流程在Window操作系统中的C++层中创建至少两个Flutter框架;其中,每一所述Flutter框架下包含至少一个窗口;
[0006]在所述Window操作系统中引入预设插件;其中,所述预设插件包含一个多窗口管理器,每一所述窗口通过一个预设通道与所述多窗口管理器进行通信;
[0007]当检测到任一所述窗口存在消息转发时,控制所述多窗口管理器通过所述预设通道转发至对应的目标窗口。
[0008]本申请提供一种基于Flutter框架的多窗口交互方法,在Window操作系统中引入一个包含多窗口管理器的预设插件,将Flutter框架中创建的每一窗口通过一个预设通道与该多窗口管理器进行通信。当不同Flutter框架间的窗口需要进行消息转发调用时,不需要改变Flutter框架自身的引擎进行渲染,仅需要以该多窗口管理器为媒介,便可以实现将不同Flutter框架间的窗口消息进行转发,实现多个窗口间的通信交互。
[0009]在一种实现方式中,所述根据预设流程在Window操作系统中的C++层中创建Flutter框架,具体包括:
[0010]创建Win32主窗口显示事件;
[0011]控制Flutter Window实时监听所述Win32主窗口下的窗口创建事件;
[0012]当检测到存在窗口创建事件时,初始化Flutter View Controller对象,以使所述Flutter框架的引擎渲染效果显示至对应的FlutterView上;
[0013]控制所述Flutter View调用所述Flutter框架的嵌入层以创建Flutter Windows View;其中,所述Flutter Windows View为一个所述窗口。
[0014]在一种实现方式中,所述在Window操作系统中的C++层中创建至少两个Flutter框架时,还包括:
[0015]每建立一次基于所述Flutter框架的窗口,通过所述Flutter框架的应用配置类将所述窗口对应的路由参数传递至所述Flutter框架的Dart层中;其中,每一所述窗口通过所述Flutter框架下的一个所述预设通道与所述多窗口管理器连接;
[0016]每一所述Flutter框架通过一个窗口通道与所述多窗口管理器连接;其中,每一所述窗口通道注册于所述多窗口管理器。
[0017]在一种实现方式中,当检测到任一所述窗口存在消息转发时,控制所述多窗口管理器通过所述预设通道转发至对应的目标窗口,具体为:
[0018]当检测到任一窗口存在消息转发时,通过所述窗口通道将消息转发至对应的Flutter框架;
[0019]根据所述路由参数确定所述目标窗口对应的预设通道并将所述消息转发至对应的所述预设通道。
[0020]在一种实现方式中,所述路由参数包括:每一所述窗口的注册路由名、窗口ID和业务参数。
[0021]在一种实现方式中,所述多窗口管理器还用于对每一所述窗口进行管理,具体为:
[0022]接收用户下发的窗口执行操作;
[0023]以每一所述窗口的ID号作为索引获取所述窗口执行操作的目标对象;
[0024]根据所述窗口执行操作对所述目标对象进行管理;其中,所述窗口执行操作包括创建、展示、隐藏、关闭、定位、最大化和最小化。
[0025]第二方面,本申请还提供一种基于Flutter框架的多窗口交互装置,包括框架创建模块、插件引入模块和消息转发模块,具体为:
[0026]所述框架创建模块用于根据预设流程在Window操作系统中的C++层中创建至少两个Flutter框架;其中,每一所述Flutter框架下包含至少一个窗口;
[0027]所述插件引入模块用于在所述Window操作系统中引入预设插件;其中,所述预设插件包含一个多窗口管理器,每一所述窗口通过一个预设通道与所述多窗口管理器进行通信;
[0028]所述消息转发模块用于当检测到任一所述窗口存在消息转发时,控制所述多窗口管理器通过所述预设通道转发至对应的目标窗口。
[0029]本申请提供一种基于Flutter框架的多窗口交互装置,在Window操作系统中引入一个包含多窗口管理器的预设插件,将Flutter框架中创建的每一窗口通过一个预设通道与该多窗口管理器进行通信。当不同Flutter框架间的窗口需要进行消息转发调用时,不需要改变Flutter框架自身的引擎进行渲染,仅需要以该多窗口管理器为媒介,便可以实现将不同Flutter框架间的窗口消息进行转发,实现多个窗口间的通信交互。
[0030]在一种实现方式中,所述框架创建模块用于根据预设流程在Window操作系统中的C++层中创建Flutter框架,具体包括:
[0031]创建Win32主窗口显示事件;
[0032]控制FlutterWindow实时监听所述Win32主窗口下的窗口创建事件;
[0033]当检测到存在窗口创建时,初始化FlutterViewController对象,以使所述Flutter框架的引擎渲染效果显示至对应的FlutterView上;
[0034]控制所述FlutterView调用所述Flutter框架的嵌入层以创建FlutterWindowsView;其中,所述FlutterWindowsView为一个所述窗口。
[003本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于Flutter框架的多窗口交互方法,其特征在于,包括:根据预设流程在Window操作系统中的C++层中创建至少两个Flutter框架;其中,每一所述Flutter框架下包含至少一个窗口;在所述Window操作系统中引入预设插件;其中,所述预设插件包含一个多窗口管理器,每一所述窗口通过一个预设通道与所述多窗口管理器进行通信;当检测到任一所述窗口存在消息转发时,控制所述多窗口管理器通过所述预设通道转发至对应的目标窗口。2.如权利要求1所述的一种基于Flutter框架的多窗口交互方法,其特征在于,所述根据预设流程在Window操作系统中的C++层中创建Flutter框架,具体包括:创建Win32主窗口显示事件;控制Flutter Window实时监听所述Win32主窗口下的窗口创建事件;当检测到存在窗口创建事件时,初始化Flutter View Controller对象,以使所述Flutter框架的引擎渲染效果显示至对应的FlutterView上;控制所述Flutter View调用所述Flutter框架的嵌入层以创建Flutter Windows View;其中,所述Flutter Windows View为一个所述窗口。3.如权利要求1所述的一种基于Flutter框架的多窗口交互方法,其特征在于,所述在Window操作系统中的C++层中创建至少两个Flutter框架时,还包括:每建立一次基于所述Flutter框架的窗口,通过所述Flutter框架的应用配置类将所述窗口对应的路由参数传递至所述Flutter框架的Dart层中;其中,每一所述窗口通过所述Flutter框架下的一个所述预设通道与所述多窗口管理器连接;每一所述Flutter框架通过一个窗口通道与所述多窗口管理器连接;其中,每一所述窗口通道注册于所述多窗口管理器。4.如权利要求3所述的一种基于Flutter框架的多窗口交互方法,其特征在于,当检测到任一所述窗口存在消息转发时,控制所述多窗口管理器通过所述预设通道转发至对应的目标窗口,具体为:当检测到任一窗口存在消息转发时,通过所述窗口通道将消息转发至对应的Flutter框架;根据所述路由参数确定所述目标窗口对应的预设通道并将所述消息转发至对应的所述预设通道。5.如权利要求3或4任意一项所述的一种基于Flutter框架的多窗口交互方法,其特征在于,所述路由参...

【专利技术属性】
技术研发人员:舒伟郭曼丽杨健
申请(专利权)人:广州随手玩网络科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1