CN110955427A - 一种用于桌面端软件的自适应融合界面实现方法 - Google Patents
一种用于桌面端软件的自适应融合界面实现方法 Download PDFInfo
- Publication number
- CN110955427A CN110955427A CN201911134812.4A CN201911134812A CN110955427A CN 110955427 A CN110955427 A CN 110955427A CN 201911134812 A CN201911134812 A CN 201911134812A CN 110955427 A CN110955427 A CN 110955427A
- Authority
- CN
- China
- Prior art keywords
- end software
- component
- desktop end
- desktop
- software
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/38—Creation or generation of source code for implementing user interfaces
-
- 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/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种用于桌面端软件的自适应融合界面实现方法,属于软件领域。本发明中,将多个独立的浏览器控件嵌入多个桌面端软件原生组件,并实现了不同组件之间cache与localstorage的共享。采用上述方案不但可以让浏览器控件和桌面端软件原生组件自动适配软件窗口大小并实现自由拖动,确保了桌面端软件界面的灵活度,又显著降低了浏览器控件和桌面端软件原生组件之间通信的开销,还可以支持从WinXP至今的所有***,运行效果和用户体验均和纯桌面端软件原生组件相当。
Description
技术领域
本发明属于软件领域,尤其涉及一种用于桌面端软件的自适应融合界面实现方法。
背景技术
传统上软件的界面实现依赖于特定界面库(如wxWidgets MFC QT Android)等,而这些界面库普遍以下缺点:平台兼容性缺失(如MFC只支持Windows平台),同样代码在不同平台上显示效果有很大差异,无法使用最新开发技术(如组件化、css等)。
为解决以上问题,对于移动端软件普遍使用桌面端原生组件和浏览器控件组合的方法进行开发,但此种方式对于桌面端软件界面的开发并不适用,主要原因是
1) 移动端软件普遍占满手机全屏故无需考虑软件窗口缩放时内部组件自适应的问题;
2) 移动端软件占用屏幕较小,内部控件数量也较少,无需考虑以组为单位控制控件的问题;
3) 移动端软件无鼠标控制的需求。
同时,本发明的发明人发现,桌面端原生组件和浏览器控件组合的情况下需不同控件间共享信息(如token,cache,localStorage等),而传统的进程间通信方法共享信息比较消耗资源,过多使用必然带来性能与体验下的不足。
发明内容
本发明的目的是提供一种用于桌面端软件的自适应融合界面实现方法,在保持原生组件和浏览器控件混合界面灵活性的同时,解决上述布局自适应、按组分类、鼠标控制、共享信息等问题,以提高用户体验。
一种用于桌面端软件的自适应融合界面实现方法,包括如下步骤:
第1步,生成多个独立的浏览器控件与多个独立的桌面端软件原生组件;
第2步,将一个或多个浏览器控件嵌入一个桌面端软件原生组件形成一个组件群;
第3步,对第2步中生成的同一个组件群的不同组件之间共享数据;
第4步,不同的组件群自适应软件窗口大小,组件群内不同控件自适应所属组件群大小;
第5步,使得鼠标拖动组件群中任一组件时,能够实现自由拖动。
在一个实施方式中,所述的第1步中,所述的浏览器控件支持html5标准;桌面端软件原生组件可以是桌面端操作***自带的组件,也可以是第三方界面库提供的组件(如wxWidegts MFC QT等)。
在一个实施方式中,所述的第2步中,通过桌面端软件自带框架将浏览器控件嵌入桌面端软件原生组件。
在一个实施方式中,所述的第2步中,组件群的数量可以为一个,也可以为两个以上。
在一个实施方式中,所述的第3步中,是指多个浏览器控件之间或者浏览器控件与桌面端软件原生组件之间共享数据。
在一个实施方式中,所述的第3步中,将不同独立的浏览器控件的数据(如cache和localStorag)设为共享同一个硬盘上的存储文件;将桌面端软件原生组件的数据(如加载所需config文件)与上述存储文件合并为同一个文件。
在一个实施方式中,所述的第4步中,重写组件群的onResize onMove等事件。
在一个实施方式中,所述的第5步中,还包括如下步骤:屏蔽浏览器控件内H5页面自身的onDrag onDrop函数;重写桌面端软件原生组件自身的onDrag、onDrop、onMouseMoveonMouseClick、onMouseLeave等。
有益效果
本发明采用以上技术方案与现有技术相比,具有以下有益效果:
1、本发明采用将原生组件和浏览器控件融合入一个群组而非简单排列组合的方法,实现了群组内不同控件间的群组间的自适应布局,可满足桌面端软件对于较复杂控件交互与布局的需求。
2、本发明采用上述方案可以使用实现原生组件与浏览器控件显示的无缝衔接与数据的全面共享,对于界面要求频繁更新且桌面端原生组件与及浏览器控件进行频繁交互的领域来说,可以明显提高开发效率与用户体验。
附图说明
图1 本发明的方法流程图
图2 本发明的融合界面结构示意图
图3 本发明的共享信息结构示意图
图4本发明的自适应界面结构示意图
具体实施方式
本发明公开了一种用于桌面端软件的自适应融合界面实现方法,本发明中,将多个独立的浏览器控件嵌入多个桌面端软件原生组件,并实现了不同组件之间cache与localstorage的共享。采用上述方案不但可以让浏览器控件和桌面端软件原生组件自动适配软件窗口大小并实现自由拖动,确保了桌面端软件界面的灵活度,又显著降低了浏览器控件和桌面端软件原生组件之间通信的开销,还可以支持从WinXP至今的所有***,运行效果和用户体验均和纯桌面端软件原生组件相当。
本发明提供的用于桌面端软件的自适应融合界面实现方法,其特征在于,该桌面端软件包含多个独立的浏览器控件与多个独立的桌面端软件原生组件,该方法包括以下步骤:
步骤1:生成多个独立的浏览器控件与多个独立的桌面端软件原生组件;独立的浏览器控件必须是支持最新html5标准的;本发明中,浏览器控件用于与各类开发的软件进行集成,提供软件界面;独立的桌面端软件原生组件可以是桌面端操作***自带的组件,也可以是第三方界面库提供的组件(如wxWidegts MFC QT等),用于提供软件的相关功能使用。
如图1所示,是实现桌面端自适应融合用户界面的流程图,该用户界面中包含多个独立的浏览器控件与多个独立的桌面端软件原生组件。其中,原生组件是桌面端的预制组件,如EditBox ComboBox Label Checkbox Widget等,但不包括浏览器组件。这些预制组件可以是桌面端操作***自带的组件,也可以是第三方界面库提供的组件(如wxWidegts MFCQT等)。
独立的浏览器控件必须是支持最新html5标准的,因为后续浏览器控件与原生组件间的信息共享所需cache和localStorage在较老的html标准中可能并不存在。
步骤2:将一个或多个浏览器控件嵌入一个桌面端软件原生组件形成一个组件群;本步骤的实施过程可以是:可通过桌面端软件自带框架将浏览器控件嵌入桌面端软件原生组件,也可直接将修改后的Chromium框架嵌入作为win32程序的桌面端软件控件;形成的组件群可包括任意多个浏览器控件与任意多个桌面端软件控件。当需要生成多个应用软件时,可以通过生成多个组件群来实现;
形成的组件群可包括任意多个浏览器控件与任意多个桌面端软件控件。相比与传统控件排列组合的方法,将不同控件融合进同一个组件群的方法显然有更好的适应性。图2显示了融合界面的结构示意图,图中左边的控件组合成了一个松散的组件群A,其内部控件之间有一定间隔;右边的控件组合成了另一个紧密的组件群B,其内部控件之间无间隔。
步骤3:同一个组件群的不同组件(多个浏览器控件之间,浏览器控件与桌面端软件原生组件之间)共享数据(如浏览器控件所需的cache和localStorage);本步骤中,可以通过以下方法来实现:将不同独立的浏览器控件的数据(如cache和localStorag)设为共享同一个硬盘上的存储文件;将桌面端软件原生组件的数据(如加载所需config文件)与上述存储文件合并为同一个文件。通过本步骤的共享数据处理,就实现了在一个组件群中的浏览器控制与桌面端原生组件之间实现数据共享,因此,在组件群中不再需要与其它的组件群共享数据,避免了出现不同组件群之间进程间通信方法共享信息比较消耗资源的问题。
图3显示了多个浏览器控件之间以及浏览器控件与桌面端软件原生组件之间如何共享数据。将硬盘指定位置的文件设为不同浏览器控件的cache和localStorage储存文件,且同时将此文件设为原生组件的config文件可以实现此目的。
步骤4:不同的组件群自适应软件窗口大小,组件群内不同控件自适应所属组件群大小;本步骤可以通过以下来实现:重写组件群的onResize onMove等事件以实现自适应软件窗口大小;引入布局控制组件以实现组件群内不同控件自适应所属组件群大小。通过本步骤,就实现了在同一个组件群中的控件完全适应于当前组件群的窗口,不会出现界面显示不正常的问题;同时,不同的组件群之间也相互不会干扰窗口的大小的显示。图4显示了某一组件群自适应软件窗口大小的示意,以及组件群内不同控件自适应所属组件群大小的示意。为了实现自适应软件窗口大小的功能,一般情况下需重写组件群的onResize onMove等事件;为了实现组件群内不同控件自适应所属组件群大小的功能,可以用代码控制,也可以引入布局控制组件以实现。
步骤5:鼠标拖动某一组件群中任一组件(浏览器控件或桌面端软件原生组件)实现自由拖动。本步骤中,可以通过以下方法来实现:屏蔽浏览器控件内H5页面自身的onDragonDrop函数;重写桌面端软件原生组件自身的onDrag onDrop onMouseMove onMouseClickonMouseLeave等事件以实现自由拖动。考虑到浏览器控件内H5页面内的元素有其自身的onDrag onDrop函数,需这些函数才能达到自由拖动浏览器控件的效果;同样,需重写桌面端软件原生组件自身的onDrag onDrop onMouseMove onMouseClick onMouseLeave等事件以实现自由拖动
表1 传统方法与本发明方法的比较
表1显示了传统方法与本发明方法的比较。由此表格可见,本发明方法可以有效地提高客户端的性能,而又不失灵活性。
Claims (8)
1.一种用于桌面端软件的自适应融合界面实现方法,其特征在于,包括如下步骤:
第1步,生成多个独立的浏览器控件与多个独立的桌面端软件原生组件;
第2步,将一个或多个浏览器控件嵌入一个桌面端软件原生组件形成一个组件群;
第3步,对第2步中生成的同一个组件群的不同组件之间共享数据;
第4步,不同的组件群自适应软件窗口大小,组件群内不同控件自适应所属组件群大小;
第5步,使得鼠标拖动组件群中任一组件时,能够实现自由拖动。
2.根据权利要求1所述的用于桌面端软件的自适应融合界面实现方法,其特征在于,在一个实施方式中,所述的第1步中,所述的浏览器控件支持html5标准;桌面端软件原生组件可以是桌面端操作***自带的组件,也可以是第三方界面库提供的组件(如wxWidegts MFCQT等)。
3.根据权利要求1所述的用于桌面端软件的自适应融合界面实现方法,其特征在于,在一个实施方式中,所述的第2步中,通过桌面端软件自带框架将浏览器控件嵌入桌面端软件原生组件。
4.根据权利要求1所述的用于桌面端软件的自适应融合界面实现方法,其特征在于,在一个实施方式中,所述的第2步中,组件群的数量可以为一个,也可以为两个以上。
5.根据权利要求1所述的用于桌面端软件的自适应融合界面实现方法,其特征在于,在一个实施方式中,所述的第3步中,是指多个浏览器控件之间或者浏览器控件与桌面端软件原生组件之间共享数据。
6.根据权利要求1所述的用于桌面端软件的自适应融合界面实现方法,其特征在于,在一个实施方式中,所述的第3步中,将不同独立的浏览器控件的数据(如cache和localStorag)设为共享同一个硬盘上的存储文件;将桌面端软件原生组件的数据(如加载所需config文件)与上述存储文件合并为同一个文件。
7.根据权利要求1所述的用于桌面端软件的自适应融合界面实现方法,其特征在于,在一个实施方式中,所述的第4步中,重写组件群的onResize onMove等事件。
8.根据权利要求1所述的用于桌面端软件的自适应融合界面实现方法,其特征在于,在一个实施方式中,所述的第5步中,还包括如下步骤:屏蔽浏览器控件内H5页面自身的onDrag onDrop函数;重写桌面端软件原生组件自身的onDrag、onDrop、onMouseMoveonMouseClick、onMouseLeave等。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911134812.4A CN110955427B (zh) | 2019-11-19 | 2019-11-19 | 一种用于桌面端软件的自适应融合界面实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911134812.4A CN110955427B (zh) | 2019-11-19 | 2019-11-19 | 一种用于桌面端软件的自适应融合界面实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110955427A true CN110955427A (zh) | 2020-04-03 |
CN110955427B CN110955427B (zh) | 2022-07-08 |
Family
ID=69977707
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911134812.4A Active CN110955427B (zh) | 2019-11-19 | 2019-11-19 | 一种用于桌面端软件的自适应融合界面实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110955427B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113568765A (zh) * | 2021-08-03 | 2021-10-29 | 北京数码视讯技术有限公司 | 客户端的开发方法和*** |
CN114816609A (zh) * | 2021-01-29 | 2022-07-29 | 北京字节跳动网络技术有限公司 | 展示窗口的方法、装置、电子设备及计算机可读存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103067502A (zh) * | 2012-12-31 | 2013-04-24 | 博彦科技(上海)有限公司 | 一种开发测试云的硬件*** |
CN106445503A (zh) * | 2016-08-31 | 2017-02-22 | 武汉烽火众智数字技术有限责任公司 | 一种基于嵌入式浏览器的桌面应用方法及*** |
CN107357554A (zh) * | 2016-05-10 | 2017-11-17 | 北京慧点科技有限公司 | 基于混合模式移动应用开发的方法和装置 |
-
2019
- 2019-11-19 CN CN201911134812.4A patent/CN110955427B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103067502A (zh) * | 2012-12-31 | 2013-04-24 | 博彦科技(上海)有限公司 | 一种开发测试云的硬件*** |
CN107357554A (zh) * | 2016-05-10 | 2017-11-17 | 北京慧点科技有限公司 | 基于混合模式移动应用开发的方法和装置 |
CN106445503A (zh) * | 2016-08-31 | 2017-02-22 | 武汉烽火众智数字技术有限责任公司 | 一种基于嵌入式浏览器的桌面应用方法及*** |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114816609A (zh) * | 2021-01-29 | 2022-07-29 | 北京字节跳动网络技术有限公司 | 展示窗口的方法、装置、电子设备及计算机可读存储介质 |
CN114816609B (zh) * | 2021-01-29 | 2024-05-28 | 抖音视界有限公司 | 展示窗口的方法、装置、电子设备及计算机可读存储介质 |
CN113568765A (zh) * | 2021-08-03 | 2021-10-29 | 北京数码视讯技术有限公司 | 客户端的开发方法和*** |
CN113568765B (zh) * | 2021-08-03 | 2023-12-26 | 北京数码视讯技术有限公司 | 客户端的开发方法和*** |
Also Published As
Publication number | Publication date |
---|---|
CN110955427B (zh) | 2022-07-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10831567B2 (en) | Application processing method and apparatus | |
US11258866B2 (en) | Web resource load blocking API | |
US11119812B2 (en) | Method and device for processing application program page according to a common interface container | |
US20240095043A1 (en) | Execution of sub-application processes within application program | |
WO2018077085A1 (zh) | 应用程序处理方法、装置及存储介质 | |
US10740114B2 (en) | Component invoking method and apparatus, and component data processing method and apparatus | |
US20210303108A1 (en) | System and method for on-screen graphical user interface encapsulation and reproduction | |
JP2020109685A (ja) | 非ブラウザアプリケーションにおけるコンテンツの統合 | |
CN110955427B (zh) | 一种用于桌面端软件的自适应融合界面实现方法 | |
CN111045675B (zh) | 一种基于Flutter的页面生成方法、装置、设备和存储介质 | |
US11966795B2 (en) | Method and device for loading minus-one screen, terminal, and computer readable storage medium | |
JP2016520932A (ja) | マルチディスプレイシステム | |
US10592063B1 (en) | Controlling actions for browser extensions | |
WO2023197656A1 (zh) | 界面元素的定位方法、电子设备及存储介质 | |
CN110990014A (zh) | 骨架屏页面代码的生成方法、装置、服务器及存储介质 | |
CN108710512B (zh) | 应用程序的预加载方法、装置、存储介质及智能终端 | |
US20140250251A1 (en) | Automatically and transparently preserving testing state across sessions | |
CN109445966B (zh) | 事件处理方法、装置、介质和计算设备 | |
CN107450992B (zh) | 标题栏与弹框栏同步通信的方法、存储介质、设备及*** | |
CN114356475B (zh) | 一种显示处理方法、装置、设备及存储介质 | |
CN103729172A (zh) | 避免触控事件被拦截以触发给多元件执行的***及其方法 | |
CN114090938A (zh) | 页面处理方法及设备 | |
CN111026463B (zh) | 一种页面加载方法、装置、设备和存储介质 | |
CN110960858B (zh) | 一种游戏资源的处理方法、装置、设备及存储介质 | |
CN105589682B (zh) | 一种基于Firefox OS的微件信息显示方法及装置 |
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 | ||
CB02 | Change of applicant information |
Address after: 211100 floor 5, block a, China Merchants high speed rail Plaza project, No. 9, Jiangnan Road, Jiangning District, Nanjing, Jiangsu (South Station area) Applicant after: JIANGSU AIJIA HOUSEHOLD PRODUCTS Co.,Ltd. Address before: 211100 No. 18 Zhilan Road, Science Park, Jiangning District, Nanjing City, Jiangsu Province Applicant before: JIANGSU AIJIA HOUSEHOLD PRODUCTS Co.,Ltd. |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |