利索能及
我要发布
收藏
专利号: 2021106272156
申请人: 平安科技(深圳)有限公司
专利类型:发明专利
专利状态:已下证
更新日期:2026-08-04
缴费截止日期: 2027-07-05
联系人

摘要:

权利要求书:

1.一种桌面应用的视图构建方法,其特征在于,所述桌面应用的视图构建方法包括:

根据用户输入的框架初始化请求,构建electron框架的初始化环境,其中,所述初始化环境中包括项目文件夹,所述项目文件夹中包括模型视图控制器MVC实例,所述MVC实例中包括视图文件和控制器文件;

基于所述electron框架的初始化环境,运行所述electron框架,得到多个可调度的进程,其中,所述多个可调度的进程包括主进程的辅助进程、渲染进程和webpack进程,所述webpack进程还包括compiler子线程;

调用所述主进程的辅助进程,创建窗口对象,并将所述项目文件夹中的MVC实例加载至所述窗口对象中;

调用所述compiler子线程,监听第一目标MVC实例中代码是否发生变化,若所述第一目标MVC实例中代码发生变化,则对第二目标MVC实例中的代码进行热更新,得到第三目标MVC实例,其中,所述第一目标MVC实例为所述项目文件夹中的MVC实例,所述第二目标MVC实例为所述窗口对象中的MVC实例;所述对第二目标MVC实例中的代码进行热更新,得到第三目标MVC实例包括:对所述第一目标MVC实例中的代码进行编译,得到本地代码文件,其中,所述本地代码文件中包括第一哈希标识;对所述第二目标MVC实例中的代码进行编译,得到应用代码文件,其中,所述应用代码文件中包括第二哈希标识;将所述第一哈希标识与所述第二哈希标识进行比较,并基于比较结果,更新所述第二目标MVC实例,得到第三目标MVC实例;

调用所述渲染进程,在所述窗口对象中对所述第三目标MVC实例进行渲染,得到桌面应用的视图,其中,所述渲染进程包括一个主线程和至少一个隐藏线程;所述调用所述渲染进程,在所述窗口对象中对所述第三目标MVC实例进行渲染,得到桌面应用的视图包括: 基于所述渲染进程中的远程对象,调用公共全局缓冲区,并将目标控制器文件中的路由参数保存至全局缓冲区中,其中,所述目标控制器文件为所述第三目标MVC实例中的控制器文件;

基于所述渲染进程的IPC对象,向所述主进程的辅助进程发送路由信号;调用所述主进程的辅助进程,接收所述路由信号,并根据所述路由信号,获取所述全局缓冲区中的路由参数;

在所述窗口对象中输出所述路由参数,以及在所述窗口对象中加载目标视图文件对应的页面内容,得到桌面应用的视图,其中,所述目标视图文件为所述第三目标MVC实例中的视图文件。

2.根据权利要求1所述的桌面应用的视图构建方法,其特征在于,所述根据用户输入的框架初始化请求,构建electron框架的初始化环境包括:根据用户输入的框架初始化请求,调用预设指令对所述electron框架进行初始化,生成所述electron框架的初始化文件夹,其中,所述初始化文件夹中包括package.json文件和配置项文件;

基于预置业务逻辑,对所述配置项文件进行数据更新,以及获取预置依赖包,并将所述预置依赖包添加至所述package.json文件中,得到所述electron框架的初始化环境。

3.根据权利要求1所述的桌面应用的视图构建方法,其特征在于,所述在所述窗口对象中加载目标视图文件对应的页面内容包括:遍历所述目标视图文件中的文档节点,并根据所述文档节点,生成所述目标视图文件对应的DOM节点树模型;

解析所述目标视图文件中的层叠样式表标记,并基于解析结果,生成所述目标视图文件对应的层叠样式表规则树模型;

根据所述DOM节点树模型与所述层叠样式表规则树模型,构建所述目标视图文件对应的渲染树模型;

基于所述目标视图文件对应的渲染树模型,将所述目标视图文件中的元素布局到所述渲染树模型对应的节点上;

将所述渲染树模型中的每个节点绘制到所述窗口对象中页面,得到目标视图文件对应的静态页面;

当接收到页面动态交互请求时,基于所述主线程和所述隐藏线程,并行执行目标javascript脚本中的至少两个事件,得到所述页面动态交互请求的响应结果,并基于所述响应结果,重载所述静态页面,得到所述目标视图文件对应的页面内容,其中,所述页面动态交互请求包括目标javascript脚本。

4.根据权利要求1中所述的桌面应用的视图构建方法,其特征在于,在调用所述渲染进程,在所述窗口对象中对所述第三目标MVC实例进行渲染,得到桌面应用的视图之后,还可以包括:当项目开发完成时,对所述项目文件夹进行编译和打包,生成对应的桌面安装包。

5.根据权利要求1‑4中任意一项所述的桌面应用的视图构建方法,其特征在于,在当项目开发完成时,对所述项目文件夹进行编译和打包,生成对应的桌面安装包之后,还可以包括:接收桌面应用的更新请求,其中,所述更新请求包括更新指令、新版本号以及所述新版本号对应的数据包;

将所述新版本号对应的数据包添加到所述桌面应用对应的资源路径下,并根据所述更新指令自动引用所述新版本号对应的数据包。

6.一种桌面应用的视图构建装置,其特征在于,所述桌面应用的视图构建装置包括:

框架初始化模块,用于根据用户输入的框架初始化请求,构建electron框架的初始化环境,其中,所述初始化环境中包括项目文件夹,所述项目文件夹中包括模型视图控制器MVC实例,所述MVC实例中包括视图文件和控制器文件;

进程构建模块,用于基于所述electron框架的初始化环境,运行所述electron框架,得到多个可调度的进程,其中,所述多个可调度的进程包括主进程的辅助进程、渲染进程和webpack进程,所述webpack进程还包括compiler子线程;

应用窗口生成模块,用于调用所述主进程的辅助进程,创建窗口对象,并将所述项目文件夹中的MVC实例加载至所述窗口对象中;

热更新模块,用于调用所述compiler子线程,监听第一目标MVC实例中代码是否发生变化,若所述第一目标MVC实例中代码发生变化,则对第二目标MVC实例中的代码进行热更新,得到第三目标MVC实例,其中,所述第一目标MVC实例为所述项目文件夹中的MVC实例,所述第二目标MVC实例为所述窗口对象中的MVC实例;所述对第二目标MVC实例中的代码进行热更新,得到第三目标MVC实例包括:对所述第一目标MVC实例中的代码进行编译,得到本地代码文件,其中,所述本地代码文件中包括第一哈希标识;对所述第二目标MVC实例中的代码进行编译,得到应用代码文件,其中,所述应用代码文件中包括第二哈希标识;将所述第一哈希标识与所述第二哈希标识进行比较,并基于比较结果,更新所述第二目标MVC实例,得到第三目标MVC实例;

应用渲染模块,用于调用所述渲染进程,在所述窗口对象中对所述第三目标MVC实例进行渲染,得到桌面应用的视图,其中,所述渲染进程包括一个主线程和至少一个隐藏线程;

所述调用所述渲染进程,在所述窗口对象中对所述第三目标MVC实例进行渲染,得到桌面应用的视图包括: 基于所述渲染进程中的远程对象,调用公共全局缓冲区,并将目标控制器文件中的路由参数保存至全局缓冲区中,其中,所述目标控制器文件为所述第三目标MVC实例中的控制器文件;基于所述渲染进程的IPC对象,向所述主进程的辅助进程发送路由信号;调用所述主进程的辅助进程,接收所述路由信号,并根据所述路由信号,获取所述全局缓冲区中的路由参数;在所述窗口对象中输出所述路由参数,以及在所述窗口对象中加载目标视图文件对应的页面内容,得到桌面应用的视图,其中,所述目标视图文件为所述第三目标MVC实例中的视图文件。

7.一种桌面应用的视图构建设备,其特征在于,所述桌面应用的视图构建设备包括:存储器和至少一个处理器,所述存储器中存储有指令;

所述至少一个处理器调用所述存储器中的所述指令,以使得所述桌面应用的视图构建设备执行如权利要求1‑5中任意一项所述的桌面应用的视图构建方法。

8.一种计算机可读存储介质,所述计算机可读存储介质上存储有指令,其特征在于,所述指令被处理器执行时实现如权利要求1‑5中任一项所述的桌面应用的视图构建方法。