CN117407087A - 一种动态加载应用程序的方法、装置和存储介质 - Google Patents
一种动态加载应用程序的方法、装置和存储介质 Download PDFInfo
- Publication number
- CN117407087A CN117407087A CN202311402358.2A CN202311402358A CN117407087A CN 117407087 A CN117407087 A CN 117407087A CN 202311402358 A CN202311402358 A CN 202311402358A CN 117407087 A CN117407087 A CN 117407087A
- Authority
- CN
- China
- Prior art keywords
- subsystem
- object node
- node
- user
- list
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 55
- 230000004044 response Effects 0.000 claims abstract description 19
- 230000000977 initiatory effect Effects 0.000 claims abstract description 10
- 238000012545 processing Methods 0.000 claims description 23
- 238000013461 design Methods 0.000 claims description 20
- 238000012216 screening Methods 0.000 claims description 10
- 238000004590 computer program Methods 0.000 claims description 3
- 238000012163 sequencing technique Methods 0.000 claims description 2
- 238000007726 management method Methods 0.000 description 20
- 230000003993 interaction Effects 0.000 description 19
- 230000006870 function Effects 0.000 description 18
- 238000011161 development Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 7
- 238000012423 maintenance Methods 0.000 description 7
- 238000005065 mining Methods 0.000 description 6
- 230000008901 benefit Effects 0.000 description 4
- 230000009191 jumping Effects 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000012550 audit Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 239000003245 coal Substances 0.000 description 2
- 235000014510 cooky Nutrition 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000001914 filtration Methods 0.000 description 2
- 238000004091 panning Methods 0.000 description 2
- 230000000750 progressive effect Effects 0.000 description 2
- 238000009877 rendering Methods 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 229920000433 Lyocell Polymers 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 230000003796 beauty Effects 0.000 description 1
- 239000000969 carrier Substances 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000001747 exhibiting effect Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Classifications
-
- 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/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
- G06F9/44526—Plug-ins; Add-ons
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/953—Querying, e.g. by the use of web search engines
- G06F16/9535—Search customisation based on user profiles and personalisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/957—Browsing optimisation, e.g. caching or content distillation
- G06F16/9574—Browsing optimisation, e.g. caching or content distillation of access to content, e.g. by caching
-
- 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/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45504—Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
- G06F9/45529—Embedded in an application, e.g. JavaScript in a Web browser
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/083—Network architectures or network communication protocols for network security for authentication of entities using passwords
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0861—Network architectures or network communication protocols for network security for authentication of entities using biometrical features, e.g. fingerprint, retina-scan
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
- H04L63/107—Network architectures or network communication protocols for network security for controlling access to devices or network resources wherein the security policies are location-dependent, e.g. entities privileges depend on current location or allowing specific operations only from locally connected terminals
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/51—Discovery or management thereof, e.g. service location protocol [SLP] or web services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/40—Network security protocols
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Databases & Information Systems (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- General Health & Medical Sciences (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本申请公开了一种动态加载应用程序的方法、装置和存储介质,发起用户的登录操作请求,响应于登录操作请求获取用户的权限;根据权限以及对应的子系统列表信息加载子系统列表页,子系统列表页包括第一对象节点,第一对象节点采用列表形式展示对应的子系统的属性;基于子系统列表信息,接收用户的节点查询请求,根据节点查询请求加载对应的子系统主页,子系统主页包括作为第一对象节点下级的至少一个第二对象节点,各第二对象节点与对应的第一对象节点构成多级嵌套结构,每一第二对象节点用于展示与其对应的子系统的属性;响应于节点查询请求,自第一对象节点的下一级第二对象节点在子系统主页中嵌套加载各第二对象节点。
Description
技术领域
本申请属于应用程序加载技术领域,具体涉及一种动态加载应用程序的方法、装置和存储介质。
背景技术
从2009年3G网络的大规模使用,开启了移动互联网时代,历经高速发展的黄金14年,多样的市场需求催化了前端技术不断升级改造,而移动端的动态化方案更是最近几年大家关注的焦点。
移动端动态化的需求主要来自于以下四个原因:1.强烈的运营需求:随着市场的快速变化,企业需要快速的推出相应的各种推广活动来达到盈利和宣传的目的,这时就会对移动端架构和发布模式提出了更高要求。如果每个变动都需要写代码,上线,发版,用户的设备更新版本等整个漫长的过程,是无法满足业务对研发团队的快速相应的要求。2.新功能快速迭代的需求:在互联网行业,很多公司都采用了敏捷开发模式来快速迭代产品功能,2~4周发版一次,但是仍然无法满足快速迭代的需求。3.应用市场审核:无论是iOS还是Android应用在提交到商店后,都需要等待一段时间来审核。以微信小程序为代表的小程序平台,也需要审核后才能发布。4.新版本用户的设备升级慢:在发布新版本后,更新覆盖到所有用户的设备需要较长的时间。
但是目前移动端动态方案的交互能力有限,且不便于展示海量信息。
发明内容
本申请旨在提供一种动态加载应用程序的方法、装置和存储介质,以便于交互且适应展示海量信息。
为实现上述技术目的,本申请采用以下技术方案。
第一方面,本申请实施例公开了一种动态加载应用程序的方法,所述应用程序包括多个子系统,所述方法包括:
发起用户的登录操作请求,响应于所述登录操作请求获取所述用户的权限;
根据所述权限以及对应的子系统列表信息加载子系统列表页,所述子系统列表页包括第一对象节点,所述第一对象节点采用列表形式展示对应的所述子系统的属性;
基于所述子系统列表信息,接收所述用户的节点查询请求,根据所述节点查询请求加载对应的子系统主页,所述子系统主页包括作为所述第一对象节点下级的至少一个第二对象节点,各所述第二对象节点与对应的所述第一对象节点构成多级嵌套结构,每一所述第二对象节点用于展示与其对应的所述子系统的属性;
响应于所述节点查询请求,自所述第一对象节点的下一级所述第二对象节点在所述子系统主页中嵌套加载各所述第二对象节点。
进一步地,所述方法还包括:
响应于所述登录操作请求对所述用户进行认证,认证通过后再获取所述用户的所述权限;
其中,响应于所述登录操作请求对所述用户进行认证,包括:
根据所述登录操作请求和预设规则选取认证因子,根据选取的所述认证因子,调用所述认证因子对应的认证方法,对所述用户进行认证;
认证通过后生成登录令牌,将所述登录令牌传递至所述用户。
进一步地,根据所述权限以及对应的子系统列表信息加载子系统列表页,包括:
根据所述权限加载对应的所述第一对象节点,并对所述第一对象节点采用列表形式展示对应的所述子系统的属性;根据选取的数据处理规则对所述第一对象节点进行数据处理,所述数据处理包括排序和筛选;加载所述数据处理后的所述第一对象节点;
和/或,根据选取的条件查找所述第一对象节点;
和/或,根据显示参数对所述第一对象节点进行自适应展示。
进一步地,所述方法包括:
根据所述权限,对所述第一对象节点和/或所述第二对象节点具有数据处理权限的用户才能对所述第一对象节点和/或所述第二对象节点进行数据处理。
进一步地,根据所述权限以及对应的子系统列表信息加载子系统列表页,包括:
调用列表查询接口发送登录令牌;接收所述列表查询接口返回的子系统列表信息,所述子系统列表信息包括所述子系统信息以及对应的对象节点标识,所述子系统信息包括子系统名称和子系统标识;
根据所述子系统信息以及所述子系统对应的所述对象节点标识,确定第一对象节点,在所述子系统列表页加载所述第一对象节点。
进一步地,根据所述节点查询请求加载对应的子系统主页:
调用节点查询接口发送节点查询请求,所述节点查询请求包括所述子系统标识和对应的对象节点标识;
响应于所述节点查询请求,返回节点查询结果,所述节点查询结果包括所述第二对象节点的标识、所述第二对象节点对应的路径、所述第二对象节点的上一级的所述第一对象节点的标识或所述第二对象节点的标识以及下一级的所述第二对象节点标识;
根据所述节点查询结果加载子系统主页。
再进一步地,所述多级嵌套结构为树状结构,所述树状结构包括依次嵌套的所述第一对象节点、所述第二对象节点和第三对象节点,所述第三对象节点用于展示设定网页信息;
利用所述第二对象节点对应的路径或所述第三对象节点对应的路径区分是否为所述第三对象节点。
进一步地,所述方法还包括:
根据所述用户的配置参数在所述子系统主页中设置样式参数;
和/或,通过所述子系统主页获取所述用户对应的用户信息并进行管理。
第二方面,本申请实施例公开了一种动态加载应用程序的装置,所述应用程序包括多个子系统,所述装置包括:
登录组件,用于发起用户的登录操作请求;
登录模块,用于响应于所述登录操作请求获取所述用户的权限;
子系统列表组件,用于根据所述权限以及对应的子系统列表信息加载子系统列表页,所述子系统列表页包括第一对象节点,所述第一对象节点采用列表形式展示对应的所述子系统的属性;
子系统主页组件,用于基于所述子系统列表信息,接收所述用户的节点查询请求,根据所述节点查询请求加载对应的子系统主页,所述子系统主页包括作为所述第一对象节点下级的至少一个第二对象节点,各所述第二对象节点与对应的所述第一对象节点构成多级嵌套结构,每一所述第二对象节点用于展示与其对应的所述子系统的属性;
页面无限嵌套组件,用于响应于所述节点查询请求,自所述第一对象节点的下一级所述第二对象节点在所述子系统主页中嵌套加载各所述第二对象节点。
进一步地,所述登录组件包括:
用户标识模块,用于与所述用户进行通信,发起所述登录操作请求;
认证因子展示模块,用于展示多种认证因子。
进一步地,所述登录模块包括:
认证因子管理器,用于管理多种认证因子;
规则引擎,用于基于所述登录操作请求和预设规则选取所述认证因子;
认证引擎,用于根据选取的所述认证因子,调用所述认证因子对应的认证方法,对所述用户进行认证;认证通过后生成登录令牌,将所述登录令牌传递至所述用户,并获取所述用户的所述权限。
进一步地,所述子系统列表组件包括:
列表展示模块,用于根据所述权限加载对应的所述第一对象节点,并对所述第一对象节点采用列表形式展示对应的所述子系统的属性;
和/或,排序和筛选模块,用于根据选取的数据处理规则对所述第一对象节点进行数据处理,所述数据处理包括排序和筛选;加载所述数据处理后的所述第一对象节点;
和/或,搜索模块,用于根据选取的条件查找所述第一对象节点;
和/或,响应式设计模块,用于根据显示参数对所述第一对象节点进行自适应展示。
进一步地,所述子系统主页组件包括:
页面布局模块,用于根据所述用户的配置参数在所述子系统主页中设置样式参数。
进一步地,所述装置还包括个人中心组件,所述个人中心组件用于通过所述子系统主页获取所述用户的用户信息并进行管理。
第三方面,本申请公开了一种计算机可读存储介质,其存储有可由计算机设备执行的计算机程序,当所述程序在计算机设备上运行时,使得所述计算机设备执行第一方面任一种可能的实施方式所提供的所述方法的步骤。
与现有技术相比,本申请实施例提供动态加载应用程序的方法,根据用户的权限,在子系统列表页列出第一对象节点,第一对象节点采用列表形式展示对应的子系统的属性,在子系统主页部署了第一对象节点下一级的与第一对象节点构成多级嵌套结构的第二对象节点,各个对象节点对应展示子系统的属性,选择当前展示的对象节点,可以跳转至其他与其嵌套的第二对象节点的页面,而选择第二对象节点又可以跳转至其下一级的第二对象节点,这种无限嵌套的特性可以无限展示子系统对象多层级关系的信息和交互;此外本申请实施例在子系统列表页可以根据不同的用户推荐不同的子系统列表,因此可以根据用户的兴趣和需求定制化推荐,从而提高用户体验;将不同的子系统通过嵌套加载的方式在子系统主页中显示各个子系统,避免了频繁跳转和加载新的页面,减少网络请求次数,从而提高了加载速度,用户只需要在一个子系统列表页或子系统主页中进行选择和操作,不需要频繁切换和跳转,提高了用户的操作效率和体验。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例一提供的动态加载应用程序的方法流程示意图;
图2为本申请实施例二提供的动态加载应用程序的方法流程示意图;
图3为本申请实施例三提供的动态加载应用程序的装置的应用场景示意图;
图4为本申请实施例中登录组件的结构示意图;
图5为本申请实施例中子系统列表组件的结构示意图;
图6为本申请实施例中子系统主页组件的结构示意图;
图7为本申请实施例中页面无限嵌套组件的结构示意图;
图8为本申请实施例中网页显示组件的结构示意图;
图9为本申请实施例中个人中心组件的结构示意图;
附图标记:
10-动态加载应用程序的装置、20-登录组件、30-子系统列表组件、40-子系统主页组件、50-页面无限嵌套组件、60-网页显示组件、70-个人中心组件、80-登录模块、90-预加载组件、100-本地缓存组件、21-用户标识模块、22-认证因子展示模块、31-列表展示模块、32-排序和筛选模块、33-搜索模块、34-第一设计模块、35-第一控制模块、41-第一页面布局模块、42-主导航栏模块、43-页面元素展示模块、44-第二设计模块、45-第二控制模块、51-嵌套显示模块、52-第三设计模块、53-第二页面布局模块、54-页面导航模块、61-跨平台显示模块、62-内置浏览器引擎、63-可定制化模块、64-安全性配置模块、71-用户个人信息模块、72-个性化设置模块、73-安全性和隐私保护模块、81-规则引擎、82-认证因子管理器、83-加密存储器、84-认证引擎。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
应当理解,本申请的方法实施方式中记载的各个步骤可以按照不同的顺序执行和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本申请的范围在此方面不受限制。
本文使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”;术语“一些实施例”表示“至少一些实施例”。其他术语的相关定义将在下文描述中给出。需要注意,本申请中提及的“第一”“第二”等概念仅用于对不同的模块或单元进行区分,并非用于限定这些模块或单元所执行的功能的顺序或者相互依存关系。
需要注意,本申请中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。
移动端动态方案虽然已经发展了很多年,但是每年都会有新的变化,已知的动态化方案与问题如下:
1.Web容器增强
基于H5(H5指HTML5,是构建Web内容的一种语言描述方式)实现,通过WebView池,离线包,并行加速,动态缓存,预加载等各种优化手段,代表方案有PWA(Progressive WebApp,渐进式Web应用)、腾讯的VasSonic、淘宝的zCache以及大部分的小程序方案。
Web容器增强的方案优点确实非常明显,它的动态化能力很强,可以快速更新,满足业务快速上线的需求,同时一次开发,可多端共享。但是性能是它目前最大的问题,主要表现在启动白屏时间和响应流畅度。由于H5在性能和稳定性方面略差,以及启动时的白屏和复杂交互等限制,使得适用场景比较受限,不适合在流畅性要求好的场景中使用,一般应用于各类节日和广告运营活动等短期运营业务。
2.虚拟运行环境
以ReactNative、Weex等Hybrid跨平台开发框架为代表的虚拟运行环境动态方案,抛弃了WebView,使用独立的JavaScript虚拟机运行,利用JavaScriptCore来做桥接,将JavaScript调用转为Native调用。最终会生成对应的自定义原生控件,走的是系统原生的渲染流程。ReactNative和Weex虽然相比H5方案在性能方面有了很大的提升,但是也要面对启动时间慢、帧率不如原生的性能问题。它属于一种比较中庸的方案,当然也会有自己的应用场景。例如一些二级页面(例如淘宝的分会场),它们的业务也比较重要,但是交互不会特别复杂,同时希望保持一定的动态化能力。
3.布局动态化
插件化或者热修复虽然可以做到页面布局和数据的动态修改,但是代价巨大,而且也不容易实现个性化运营。淘宝和美团的首页结构都可以通过动态配置更新。代表的方案有阿里的Tangram、Facebook的Yoga。这种方案适用于核心且交互较为复杂,或者性能要求比较高的业务。例如淘宝、美团的首页,微信聊天页。
本申请旨在提供一种动态加载应用程序的方法、装置和存储介质,以便于交互且适应展示海量信息。
本申请实施例提供动态加载应用程序的方法,根据用户的权限,在子系统列表页列出第一对象节点,第一对象节点采用列表形式展示对应的子系统的属性,在子系统主页部署了第一对象节点下一级的与第一对象节点构成多级嵌套结构的第二对象节点,各个对象节点对应展示子系统的属性,选择当前展示的对象节点,可以跳转至其他与其嵌套的第二对象节点的页面,而选择第二对象节点又可以跳转至其下一级的第二对象节点,这种无限嵌套的特性可以无限展示子系统对象多层级关系的信息和交互。
此外本申请实施例在子系统列表页可以根据不同的用户推荐不同的子系统列表,因此可以根据用户的兴趣和需求定制化推荐,从而提高用户体验;将不同的子系统通过嵌套加载的方式在子系统主页中显示各个子系统,避免了频繁跳转和加载新的页面,减少网络请求次数,从而提高了加载速度,用户只需要在一个子系统列表页或子系统主页中进行选择和操作,不需要频繁切换和跳转,提高了用户的操作效率和体验。
以下结合说明书附图和具体实施例对本申请做进一步说明。
实施例一
一种动态加载应用程序的方法,应用程序包括至少多个子系统,方法包括:发起用户的登录操作请求,响应于登录操作请求获取用户的权限;根据权限以及对应的子系统列表信息加载子系统列表页,子系统列表页包括第一对象节点,第一对象节点采用列表形式展示对应的子系统的属性;基于子系统列表信息,接收用户的节点查询请求,根据节点查询请求加载对应的子系统主页,子系统主页包括作为第一对象节点下级的至少一个第二对象节点,各第二对象节点与对应的第一对象节点构成多级嵌套结构,每一第二对象节点用于展示与其对应的子系统的属性;响应于节点查询请求,自第一对象节点的下一级第二对象节点在子系统主页中嵌套加载各第二对象节点。
本申请中,应用程序的子系统是指应用程序中相互关联且独立的功能模块或组件集合。每个子系统通常负责处理特定的任务或提供特定的功能,如船舶运维平台子系统、矿用卡车运维平台子系统、压缩机运维平台子系统等,各个子系统可以分开独立,通过将应用程序拆分为多个子系统,可以实现模块化的开发和维护,提高代码的可读性、可维护性和可扩展性。每个子系统通常具有清晰的职责和接口,可以独立开发、测试和部署。它们之间通过定义良好的接口和协议进行通信,实现整个应用程序的协同工作。应用程序子系统的设计和划分应该根据应用程序的需求和复杂性进行合理的规划和调整。
本申请实施例根据用户的权限,在子系统列表页列出第一对象节点,第一对象节点采用形式展示对应的子系统的属性,在子系统主页部署了第一对象节点下一级及以下各级第二对象节点,各第二对象节点与第一对象节点构成多级嵌套结构,各个第一对象节点和第二对象节点分别对应展示子系统的属性,选择当前展示的对象节点(第一对象节点或第二对象节点),可以跳转至其他与其嵌套的第二对象节点的页面,也就是说若第一对象节点具有多级嵌套的第二对象节点,而选择第一对象节点下一级的第二对象节点又可以跳转至该下一级的第二对象节点的下一级,这种无限嵌套的特性可以无限展示子系统对象多层级关系的信息和交互。
在一些实施例中,如图1所示,方法还包括:响应于登录操作请求对用户进行认证,认证通过后再获取用户的权限。
在一些实施例中,可以通过分别部署客户端(如移动端)和服务端实现上述动态加载应用程序的方法。
客户端提供用户登录界面,并发起用户输入的登录信息。
客户端:获取用户的设备ID,向服务端发起登录操作请求,以使服务端进行登录认证,认证通过后客户端获取服务端为用户分配的权限。根据服务端分配的权限,决定在子系统列表页加载哪些子系统列表信息。它可以根据权限动态生成子系统列表页,包括各个第一对象节点。提供界面交互,以允许用户选择第一对象节点。根据用户的节点查询请求,在子系统主页中动态加载对应的第二对象节点。
客户端可采用现有技术获取用户的设备ID,本申请不做详细描述。
服务端:接收客户端发送的登录操作请求,可选地先进行认证,认证通过后生成登录令牌,将登录令牌传递至用户,并为用户的分配相应的权限。提供子系统主页的数据和结构,包括第一对象节点的信息和第二对象节点的信息。接收客户端发送的节点查询请求,并根据请求返回相应的第二对象节点数据。提供子系统的功能和服务,以满足客户端对子系统的请求和操作。
客户端和服务端需要相互配合,通过网络通信进行数据传输和交互,以实现动态加载应用程序的功能。客户端负责用户界面和用户交互,服务端负责处理业务逻辑和数据管理。
在一些实施例中,多级嵌套结构为树状结构,树状结构包括第一对象节点、第二对象节点和第三对象节点,第三对象节点用于展示设定网页信息。
实施例二
如图2所示,本实施例提供的动态加载应用程序的方法包括以下步骤:
步骤S101:响应于登录操作请求对用户进行认证,认证通过后再获取用户的权限;其中,响应于登录操作请求对用户进行认证,包括:根据登录操作请求和预设规则选取认证因子,根据选取的认证因子,调用认证因子对应的认证方法,对用户进行认证;所有选取的认证因子认证通过后生成登录令牌,将登录令牌传递至用户。
认证因子可包括用户名密码认证因子、地理位置认证因子和生物特征指纹认证因子等。
如本实施例中,移动端启动后,用户可以调用服务端的第一接口、第二接口、第三接口、第四接口和第五接口实现自动登录认证。
移动端通过向第一接口发送登录操作请求,发起接口调用。登录操作请求中包括用户的设备ID,服务端通过用户的设备ID等可查询设备绑定的用户信息,以及判断其登录状态,若已免登录且通过认证,直接进入登录认证成功后步骤;否则进行多因素认证的登录流程。
第二接口为规则引擎的接口,用于选择认证因子接口,显示多因素认证因子。
第三接口为用户名密码认证因子接口,用户输入用户名、密码等信息后调用第三接口登录,认证成功进入下一个多因素认证环节。
第四接口为地理位置认证因子接口,在第三接口认证成功获取用户信息后,根据设备获取的位置信息,调用第四接口判断用户是否位于其常规工作位置范围,若位置正确直接进入登录认证成功后的步骤;否则进入下一个多因素认证环节;第五接口为生物特征指纹认证因子接口,调用设备存储的指纹信息进行用户身份认证,成功后进入登录认证成功后步骤。
示例地,某用户触发的规则为选择用户名密码、GPS地理位置、生物特征指纹等认证因子,第三接口认证成功后,调用第三接口先判断地理位置是否位于其常规工作位置范围,若位置正确直接进入登录认证成功后的步骤;否则进入第四接口生物特征指纹因子认证环节,同时使用第三或第四或第五接口返回的登录令牌,传递给用户,登录令牌用于认证成功后的API接口(下文第六接口、第七接口等)调用时检校登录令牌的有效性,保证每次调用API的安全性。
步骤S102:客户端可调用服务端第六接口(列表查询接口)查询用户权限对应的子系统列表,并加载于子系统列表页,在子系统列表页利用第一对象节点采用列表的形式显示子系统列表。服务端创建第六接口,第六接口为查询用户有权限的子系统列表,请求参数示例为空{}。
可选地,客户端发起用户的登录操作请求,调用服务端第六接口获取用户的权限,以及获取权限对应的第一对象节点即第一级子系统列表信息。第六接口(API6)时需要提供登录令牌TOKEN,服务端通过登录令牌TOKEN即可获取登录用户信息,这样做的有益效果是减少请求包大小,提升API响应速度。
服务端的列表查询接口返回子系统列表信息,子系统列表信息包括子系统信息以及对应的对象节点标识,子系统信息包括子系统名称、子系统标识;服务端返回响应数据示例如下:
{"success":true,
"message":"",
"code":200,
"result":[{
"appId":"1583328859708059649",
"appName":"散货船运维平台",
"appOrder":0,
"description":"散货船智能管理APP",
"status":"active",
"appLogo":
"http(s)://xxx.xxx.xxx.xxx/idp/app/ship_1678170720000.png",
"startImage":"http(s)://xxx.xxx.xxx.xxx/idp/app/ship_start.png",
"tabBarList":[{
"path":"/pages/list/list",
"icon":"http(s)://xxx.xxx.xxx.xxx/idp/app/shipIcon.png",
"objId":"1583329692440981505",
"title":"船舶列表"
}]
},
{
"appId":"1613179838475186178",
"appName":"矿用卡车运维平台",
"appOrder":1,
"description":"矿用卡车智能管理APP",
"status":"inactive",
"appLogo":
"http(s)://xxx.xxx.xxx.xxx/idp/app/mine-company_1678170725978.png",
"startImage":"",
"tabBarList":[{
"path":"/pages/list/list",
"icon":"http(s)://xxx.xxx.xxx.xxx/idp/app/mineTruckIcon.png",
"objId":"1613177400095584258",
"title":"煤矿列表"
}]
}
],
"timestamp":1694309556620
}。
其中success为成功标志位,成功时true失败时为false,message为消息描述,code是http的状态码,result是响应请求的主体结构,上述都是本申请实施例中接口(API)响应数据的标准字段(下同),本第六接口(API6)的result中:包括子系统信息,如:appId为子系统标识符,appName为子系统名称,例如“散货船”,appOrder为子系统排序编号,数字越小,排序越靠前,description为子系统的描述信息,status为子系统是否活跃的状态,appLogo为子系统的LOGO图片,http(s)://xxx.xxx.xxx.xxx/idp/app/ship_1678170720000.png"以及"http(s)://xxx.xxx.xxx.xxx/idp/app/mine-company_1678170725978.png"为子系统的LOGO图片的存储路径,startImage为子系统启动时显示的图片,tabBarList为子系统主页导航列表节点,其中path为对象节点对应的路径(即导航的路径),icon为导航图标,title为导航节点显示的文字,例如“船舶列表”,以及objId为对象节点标识。
步骤S103:结合第六接口响应的子系统列表信息及调用第七接口(节点查询接口)查询子系统对象节点及显示布局等信息,进入子系统主页,展示子系统的信息。
根据第六接口响应子系统列表信息中的tabBarList显示子系统主页导航列表。
第七接口请求参数示例为{
"appId":"1613179838475186178",
"objId":"1613177400095584258"
},其中,appId为子系统标识,objId为对象节点标识,节点查询接口返回节点查询结果,节点查询结果包括对象节点标识、对象节点对应的路径、对象节点的上一级对象节点标识以及下一级各第二对象节点标识,返回响应数据示例如下:
{
"success":true,
"message":"",
"code":200,
"result":{
"gridNum":1,
"path":"/pages/list/list",
"parentObjId":"1613176427398737922",
"children":[
{
"path":"/pages/list/list",
"objId":"1643890917525360641",
"title":"xxxx露天煤矿",
"picture":
"http(s)://xxx.xxx.xxx.xxx/idp/app/temp/_20230406161939.jpg"
}
],
"appId":"1613179838475186178",
"objId":"1613177400095584258"
},
"timestamp":1694315479260
}。其中,gridNum为网格列数,path为对象节点(包括第一对象节点和第二对象节点)对应的路径,可以标识对象节点是否为叶子节点,如若是"/pages/list/list"则表示页面无限嵌套显示的对象节点;若是http(s)开头的url,则表示为网页显示组件60;parentObjId为父对象节点标识,children为第二对象节点数组,其中path为对象节点对应的路径,objId为对象节点标识,title为第二对象节点显示文本的内容,picture为第二对象节点的图标。
步骤S104:调用第七接口并根据返回的path为/pages/list/list时显示为页面无限嵌套的对象节点,此步骤可根据子系统对象层级的数量多次调用:
根据用户单击当前的对象节点时,向服务端调用第七接口查询子系统对象节点及显示布局等信息,当对象节点对应的路径path值为"/pages/list/list"继续显示以页面无限嵌套的对象节点,即对应的显示子系统的属性。请求示例同S103,其中"path":"/pages/list/list";用户进入对象子节点页面后,继续单击当前页面对象节点时,向服务端调用第七接口查询子系统对象节点及显示布局等信息,当第二对象节点对应的路径path值为"/pages/list/list"继续显示以页面无限嵌套的对象节点,从而实现此步骤的多次调用。
步骤S105:调用第七接口并根据返回的path为http(s)开头的url时显示网页(可利用网页显示组件60显示网页):
根据用户单击当前页面对象节点时,向服务端调用第七接口查询子系统对象节点及显示布局等信息,当第二对象节点对应的路径path值为http(s)开头的url,则表示为该对象节点用于显示网页信息;示例响应数据如下所示:
{
"success":true,
"message":"",
"code":200,
"result":{
"gridNum":1,
"path":"http(s)://xxx.xxx.xxx.xxx/ht/mine-truck/?tag=displays/abx215.json&truc kId=1",
"parentObjId":"1643890917525360641",
"children":[],
"appId":"1613179838475186178",
"objId":"1615174613327851522"
},
"timestamp":1694318076896
},变量含义同上。
至此,移动端根据接口返回数据的不同,而实现了动态加载应用程序。
在一些实施例中,可将应用程序发布至微信小程序、Android应用、Ios应用等。
实施例三
如图3所示,本实施例提供一种动态加载应用程序的装置10,应用程序包括多个子系统,装置包括登录组件20、登录模块80、子系统列表组件30、子系统主页组件40和页面无限嵌套组件50。
登录组件20用于发起用户的登录操作请求。
登录模块80用于响应于登录操作请求获取用户的权限。
子系统列表组件30用于根据权限加载子系统列表页,子系统列表页包括第一对象节点,第一对象节点采用列表形式展示对应的子系统的属性。
子系统主页组件40用于基于子系统列表信息,接收用户的节点查询请求,根据节点查询请求加载对应的子系统主页,子系统主页包括作为第一对象节点下级的至少一个第二对象节点。在一些实施例中,子系统主页可包括第一对象节点以下多级第二对象节点,各第二对象节点与对应的第一对象节点构成多级嵌套结构,每一第二对象节点用于展示与其对应的子系统的属性。
页面无限嵌套组件50用于响应于节点查询请求,自第一对象节点的下一级第二对象节点在子系统主页中嵌套加载各第二对象节点。
在一些实施例中,开发人员可在移动端开发移动端原生代码实现动态加载应用程序的装置10,可将移动端原生代码分别打包发布移动端,如微信小程序、Android或Ios等,并分别提交审核,其中微信小程序移动端通过微信开发者工具,配置AppId后上传代码,提交微信公众平台上架;Android移动端将移动端原生代码打包生成apk,提交安卓应用市场审核上架;Ios移动端将移动端原生代码打包生成ipa,提交苹果的AppStore审核上架。
登录组件20可用于移动端的多因素认证,具有收集用户的信息、展示认证因子、发起认证用户认证登录请求并接收结果、接收登录一次性令牌等技术特征,以提高登录过程的安全性和便捷性。
子系统列表组件30可通过子系统列表页提供列表展示、排序和筛选、搜索功能、分页功能、响应式设计、数据交互和安全控制等技术特征,方便用户管理子系统。
子系统主页组件40可用于在子系统主页展示子系统主要信息和功能的用户界面组件。它具有合理的页面布局、主导航栏、子导航栏、页面元素、动态数据交互、安全控制和响应式设计等技术特征,提供用户友好的界面和操作体验。
页面无限嵌套组件50可用于在页面上展示某一级别的子系统对象节点信息,并且允许无限嵌套,即从该页面可以跳转至对象节点的子节点页面,由于子系统对象节点未限制级别数量,则页面显示组件进一步支持无限嵌套。
可以理解的是,子系统列表组件30用于显示子系统的列表,对应第一对象节点也即第一级对象节点,第一对象节点用户展示子系统列表的多个属性,子系统的属性可至少包括子系统的名称,还有图片、系统描述等,所以第一级对象节点的属性显示在子系统列表页。
如以上示例,在一些实施例中,树状结构包括第一对象节点、第二对象节点和第三对象节点,第三对象节点用于展示设定网页信息。可选地,装置还包括网页显示组件60,网页显示组件60以其跨平台、内置浏览器引擎62、可定制化、支持JavaScript和CSS来显示第三方网页,并保证加载的安全性,实现移动端应用的多样性和扩展性。
可选地,装置还包括个人中心组件70,以实现包括用户信息管理、设置应用程序的个性化选项、用户留言管理等功能。
具体实施例中,如图4所示,登录组件20包括用户标识模块21和认证因子展示模块22。
用户标识模块21:该接口负责与用户进行通信,收集用户的信息,如设备ID、操作系统版本等。认证因子展示模块22可用于展示多种认证因子。
如图3所示,登录模块80可包括规则引擎81、认证因子管理器82、加密存储器83和认证引擎84等。
规则引擎81:该引擎根据登录操作请求和预设的规则对登录请求进行处理,如调用子系统节点的保密级别、移动端地理位置限制登录范围等。
认证因子管理器82:该认证因子管理器82包含多种认证因子,如生物特征、动态密码、地理位置等。在登录过程中,根据预设的认证因子选择逻辑,调用规则引擎81,选择合适的认证因子进行认证。
加密存储器83:该加密存储器83用于存储用户的敏感信息,如用户名、密码、私钥等。这些信息通过加密算法进行加密存储,保证数据安全;用户名、私钥通过对称加密算法或非对称加密算法(例如DES、RSA、SM2)加密后存储,使用时解密;密码通过报文摘要算法(如MD5、SM3)处理后存储。
认证引擎84:该引擎包含一个或多个认证算法,根据选择的认证因子,处理用户登录请求,用于对用户提供的认证信息进行认证。认证通过后,生成登录令牌,传递给用户。
登录模块80还可以包括令牌生成器:该令牌生成器根据认证结果和随机数生成器生成一次性令牌,用于API接口调用时检校令牌的有效性,保证每次调用API的安全性。
可选地,如图5所示,子系统列表组件30包括列表展示模块31、排序和筛选模块32、搜索模块33、第一设计模块34和第一控制模块35。
列表展示模块31:子系统列表组件30会将子系统的属性以对象节点列表的形式展示出来,每个子系统的属性包括对应子系统的名称、标识、图片、状态等信息。
排序和筛选模块32:子系统列表组件30通常支持按照一定规则对子系统进行排序和筛选,例如按照名称、状态、创建时间等进行排序,或者通过输入关键字进行筛选。
搜索模块33:子系统列表组件30通常提供搜索功能,用户可以通过输入关键字来快速查找目标子系统。
第一设计模块34(响应式设计):子系统列表组件30采用响应式设计,能够根据不同设备的屏幕大小和分辨率进行自适应展示,提高用户体验。
第一控制模块35(数据交互与安全控制):子系统列表组件30与后端服务器进行数据交互,包括获取子系统数据,子系统列表组件30会进行安全控制,确保只有具有相应权限的用户才能访问和操作子系统。
可选地,如图6所示,子系统主页组件40是用于展示子系统主要信息和功能的用户界面组件,包括第一页面布局模块41、主导航栏模块42、页面元素展示模块43、第二设计模块44和第二控制模块45。
第一页面布局模块41:子系统主页组件40会根据子系统的特点和需求设计页面布局,将各种子系统对象的节点信息和功能以合适的方式展示出来。
主导航栏模块42:子系统主页组件40包含一个主导航栏,主导航栏由子系统对象的二级节点和“我的组件”共同构成;这样实现的好处是无需额外开发主导航栏管理的功能及配置,复用子系统对象管理的功能,减少了开发的工作量和配置的复杂性。
页面元素展示模块43:子系统主页组件40会包含各种页面元素,页面元素为子系统对象的三级及以上节点,配合页面无限嵌套显示组件,用于展示子系统的信息和功能。
第二设计模块44(响应式设计):子系统主页组件40采用响应式设计,能够根据不同设备的屏幕大小和分辨率进行自适应展示,提高用户体验。
第二控制模块45(动态数据交互与安全控制):子系统主页组件40通常与后端服务器进行数据交互,获取并展示子系统的对象节点数据,子系统主页组件40会进行安全控制,确保只有具有相应权限的用户才能访问和操作子系统。
可选地,如图7所示,页面无限嵌套显示组件是一种可以显示无限嵌套页面的组件,帮助用户在移动端应用程序中展示大量的信息和交互。页面无限嵌套显示组件包括嵌套显示模块51、第三设计模块52、第二页面布局模块53和页面导航模块54。
嵌套显示模块51:页面无限嵌套显示组件可以无限嵌套,即单击当前页面显示的对象节点,可以跳转至显示其子节点的页面,而单击子节点又可以进一步跳转至孙节点的页面,形成多层次的嵌套关系,这种无限嵌套的特性使得可以无限展示子系统对象的多层级关系的信息和交互。
第三设计模块52(响应式设计),支持可缩放、可滚动和平移操作,用户可以使用手指或者鼠标来缩放和平移页面。这种可缩放和可滚动的特性使得用户可以更好地浏览和操作页面的内容和交互。
页面无限嵌套显示组件可以支持持多种数据类型,例如文本、图片、动画等。这种支持多种类型的特性使得可以展示丰富的内容和交互。
第二页面布局模块53:支持多种页面布局,包含网格、列表、顶部网格、顶部列表、底部网格、底部列表;网格,按多列网格的方式显示当前第二对象节点的下一级第二对象节点,显示内容为第二对象节点的名称、图标,网格包含双列网格、三列网格、四列网格,默认为双列网格;列表,按列表的方式显示当前子系统的第二对象节点,列表内容显示当前第二对象节点的下一级第二对象节点的名称、图标、描述文字;顶部网格,顶部按网格的方式显示当前第二对象节点的下一级第二对象节点,页面其余部分以WebView的方式显示第二对象节点的路径;顶部列表,顶部按列表的方式显示当前第二对象节点的下一级第二对象节点,页面其余部分以WebView的方式显示第二对象节点的路径;底部网格,底部按网格的方式显示当前第二对象节点的下一级第二对象节点,页面其余部分以WebView的方式显示第二对象节点的路径;底部列表,底部按列表的方式显示当前第二对象节点的下一级第二对象节点,页面其余部分以WebView的方式显示第二对象节点的路径。这种支持多种页面布局的特性使得可以展示丰富的样式,提高用户体验。
页面导航模块54:支持前后导航,即用户可以在不同层级的第二对象节点页面之间进行跳转和导航,这种支持前后导航的特性增强了用户的操作体验和信息获取的效率,提供清晰和易于使用的导航和交互方式等。
如图8所示,网页显示组件60,即WebView组件,是一种用于在应用程序中嵌入和显示Web内容的组件,网页显示组件60包括跨平台显示模块61、内置浏览器引擎62、可定制化模块63和安全性配置模块64。
跨平台显示模块61:WebView显示组件可以在不同的操作系统和设备上运行,例如iOS、Android、Windows等。这种跨平台的特性使得应用程序可以轻松地在不同的平台上部署和使用。
内置浏览器引擎62:WebView显示组件内置了浏览器引擎,例如WebKit、Trident等,可以解析和显示Web内容,这种内置浏览器引擎62的特性使得应用程序可以快速加载和渲染Web页面。
可定制化模块63:WebView显示组件可以定制外观和功能,可自定义工具栏、菜单、滚动条等,这种可定制化的特性使得本申请的移动端应用可以根据需求进行个性化的设计和开发。
支持JavaScript和CSS:WebView显示组件支持JavaScript和CSS,可以与Web页面进行交互并动态地改变Web页面的内容和样式,这种支持JavaScript和CSS的特性的好处是增强了Web页面的交互性和动态性。
安全性配置模块64:WebView显示组件支持配置,使其具有安全性特性,可以对Web内容进行过滤和限制,以防止恶意代码的执行和敏感信息的泄露,这种安全性特性保护了用户的数据和隐私。
如图9所示,在一些实施例中动态加载应用程序的装置还包括个人中心组件70,是一种用于移动应用程序的用户个人中心的组件,可以帮助用户管理个人信息、设置应用程序的个性化选项等。包括用户个人信息模块71、个性化设置模块72和安全性和隐私保护模块73。
用户个人信息模块71:移动端“我的”组件可以管理用户的个人信息,例如用户名、密码、邮箱地址、手机号码等,用户可以随时修改和更新这些信息,以便在使用移动端应用程序时保持准确和最新的信息。
个性化设置模块72:移动端“我的”组件可以根据用户的个性化需求设置应用程序的选项。例如,用户可以根据个人喜好设置主题颜色、字体大小、通知方式等。这些个性化设置可以提高用户体验和满意度。
安全性和隐私保护模块73:移动端“我的”组件具有安全性和隐私保护的技术特征,除了在传输中使用https加密通道外,用户的信息使用SM2加密存储和传输,在显示时解密显示,可以对用户的个人信息进行保护,以防止泄露和被恶意利用。这种安全性和隐私保护的特性保护了用户的个人隐私和数据安全。
实施例三提供的动态加载应用程序的装置10的应用场景示意图如图3所示。作为示例地,动态加载应用程序的装置10可部署于客户端(可为移动端)和服务端,前端的客户端与后端的服务端进行交互。
服务端可包括登录模块80中的规则引擎81、认证因子管理器82、加密存储器83和认证引擎84。用于实现用户使用多因素认证方式登录服务端;在一些实施例中,使用户名、密码、验证码登录,其中验证码登录为图形验证码;也可以支持手机短信验证码的动态密码登录,以及第三登录,如微信等;登录模块支持记住密码功能。
服务端还可以包括用户管理模块、权限管理模块和子系统管理模块。用户管理模块用于管理用户的增删改查功能;在一些实施例中,用户管理包含对用户的用户名、手机号、密码等基本信息的管理。可选地存在管理员admin用户。
权限管理模块用于实现用户的权限配置,支持按角色管理用户的子系统权限。在一些实施例中,权限管理为应用最为广泛的权限管理模型RBAC,RBAC,基于角色的权限访问控制(Role-Based Access Control)作为传统访问控制(自主访问,强制访问)的有前景的代替受到广泛的关注。权限管理核心的三要素是:用户、角色、权限,权限支持子系统权限和按钮权限。在一些实施例中,admin具有全部子系统的权限。
子系统管理模块用于实现子系统对象节点及页面的信息配置。在子系统管理模块创建树状结构的移动端子系统对象,并维护对象各级节点:
一级节点(对应第一对象节点)作为移动端子系统名,示例名称:“散货船”或“矿用卡车”;二级节点作为可作为移动端底部导航入口,示例名称“船舶列表”或“煤矿列表”;三级节点及以上节点作为子页面元素展示:示例三级节点配置为“船A”和“船B”,四级节点配置为“1#辅机”、“2#辅机”;四级节点可为第三对象节点即叶子节点,叶子节点可挂载URL显示第三方页面,例如“1#辅机”的菜单路径为http(s)://urlA-1-donkey。二级节点、三级节点对应第二对象节点。
例如在其他实施例中,配置一级子系统名称分别为“散货船”和“压缩机”,“散货船”下的二级子系统名称配置为“船舶列表”,三级子系统名称配置为“船A”、“船B”,四级子系统名称配置为“1#辅机”、“2#辅机”,其中子系统“船A”的第二对象节点的路径为http(s)://urlA,“1#辅机”的第二对象节点的路径为http(s)://urlA-1-donkey。
移动端包括如上的登陆组件20(如用户标识模块21和/或认证因子展示模块22)、子系统列表组件30、子系统主页组件40、页面无限嵌套组件50、网页显示组件60和个人中心组件70。
子系统列表组件30,用于实现用户登录后的页面展示;在一些实施例中,示例展示的是“散货船”和“矿用卡车”2个子系统。
子系统主页组件40以及页面无限嵌套组件50,用于展示子系统对象节点及页面;在一些实施例中,进行某个子系统后的页面,例如“散货船”子系统,移动端展示其配置的二级子系统。
服务端与移动端通信采用安全协议httpS协议进行通信,对数据进行加密处理,加密算法可选为RSA、国密SM2。
服务端子系统中对象管理模块,单个对象节点包含名称、终端类型、第二对象节点的路径、图标、描述文字、显示风格等。
终端类型仅针对子系统对象根节点(即第一对象节点)有效,包含PC端、移动端、PC端+移动端;对象节点为非根节点时,终端类型不可选择。在本实施例中,一级节点对应的子系统名称分别为“散货船运维平台”和“矿用卡车运维平台”,终端类型选择为移动端或PC端+移动端。
在本实施例中,“船舶列表”的显示风格配置为双列网格,“船舶A”、“船舶B”为底部网格。
登录组件20、子系统列表组件30、子系统主页组件40、页面无限嵌套组件50、网页显示组件60、个人中心组件70为移动端原生程序;登录模块80为服务端程序。
子系统列表组件30展示内容为登录用户有权限的子系统列表,子系统主页组件40展示的底部导航为子系统对象的二级节点,且在子系统主页的导航中增加“个人中心”固定菜单,展示登录用户的个人信息;子系统页面递归展示二级对象的子节点,显示风格根据菜单项的“显示风格”确定,若对象节点没有子节点,则以WebView的方式展示第二对象节点的路径。在一些实施例中,使用admin登录移动端后,显示的子系统列表有2条记录“散货船”和“压缩机”,单击“散货船”子系统后,进入子系统首页,底部菜单显示“船舶列表”和“个人中心”,默认显示“船舶列表”页面,页面内容为双列网格图标显示“船A”和“船B”,单击“船A”后页面上部分以WebView显示http(s)://urlA的内容,底部显示以双列网格的方式显示“1#辅机”、“2#辅机”,单击“1#辅机”则以WebView显示http(s)://urlA-1-donkey的内容。
移动端原生程序,包含小程序、Android应用、IOS应用,使用uni-app原生开发实现,达到一套代码多端复用的效果。在一些实施例中,移动端小程序为微信小程序,且移动端APP分别打包发布为Android应用、IOS应用。
移动端还包含预加载组件90,为了加快页面加载速度,将常用的配置动态数据提前加载到移动端本地,下次请求时可以直接从本地获取数据,减少网络请求次数;预加载技术有数据预取缓存prefetch(缓存下一个网页的资源)和数据预渲染加载prerender(通过最可能访问的下一页面来加载渲染)。这样做的有益效果是提升了用户感受。例如用户在首页停留2s,而这2s里面就已经加载了一个用户可能要打开的子系统页面,那么用户打开的速度会非常快,给用户的感受极好。
移动端还包含本地缓存组件100:为了提高页面加载速度,可以使用缓存技术,将常用的动态数据缓存到本地,下次请求时可以直接从本地获取数据,减少网络请求次数;缓存技术有LocalStorage和IndexedDB。LocalStorage用于本地存储,解决了cookie的存储空间不足问题,cookie存储空间一般为4K,而LocalStorage一般在浏览器分配的空间大小为5M;IndexedDB是一种类似SQL数据库结构化数据存储机制,数据保存在对象存储空间中,是一组位于相同命名空间下的对象的集合。IndexedDB的引入,提升了移动端缓存的便捷性,并提升了页面加载速度。
优选的,服务端还包含低代码模块,通过低代码开发模式,通过拖拽组件,配置组件内容,来快速的搭建子系统页面;低代码模块可选为阿里宜搭,百度爱速搭,腾讯微搭,字节飞书多维表格等,也可以为自研低代码模块。在一些实施例中,子系统“船A”的第二对象节点的路径为http(s)://urlA和“1#辅机”的第二对象节点的路径http(s)://urlA-1-donkey使用低代码模块实现。
本申请实施例还提供了一种计算机可读存储介质,其存储有可由计算机设备执行的计算机程序,当所述程序在计算机设备上运行时,使得所述计算机设备执行以上任一所述动态加载应用程序的方法的步骤。
以上,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。
Claims (15)
1.一种动态加载应用程序的方法,其特征在于,所述应用程序包括多个子系统,所述方法包括:
发起用户的登录操作请求,响应于所述登录操作请求获取所述用户的权限;
根据所述权限以及对应的子系统列表信息加载子系统列表页,所述子系统列表页包括第一对象节点,所述第一对象节点采用列表形式展示对应的所述子系统的属性;
基于所述子系统列表信息,接收所述用户的节点查询请求,根据所述节点查询请求加载对应的子系统主页,所述子系统主页包括作为所述第一对象节点下级的至少一个第二对象节点,各所述第二对象节点与对应的所述第一对象节点构成多级嵌套结构,每一所述第二对象节点用于展示与其对应的所述子系统的属性;
响应于所述节点查询请求,自所述第一对象节点的下一级所述第二对象节点在所述子系统主页中嵌套加载各所述第二对象节点。
2.根据权利要求1所述的动态加载应用程序的方法,其特征在于,所述方法还包括:
响应于所述登录操作请求对所述用户进行认证,认证通过后再获取所述用户的所述权限;
其中,响应于所述登录操作请求对所述用户进行认证,包括:
根据所述登录操作请求和预设规则选取认证因子,根据选取的所述认证因子,调用所述认证因子对应的认证方法,对所述用户进行认证;
认证通过后生成登录令牌,将所述登录令牌传递至所述用户。
3.根据权利要求1所述的动态加载应用程序的方法,其特征在于,根据所述权限以及对应的子系统列表信息加载子系统列表页,包括:
根据所述权限加载对应的所述第一对象节点,并对所述第一对象节点采用列表形式展示对应的所述子系统的属性;根据选取的数据处理规则对所述第一对象节点进行数据处理,所述数据处理包括排序和筛选;加载所述数据处理后的所述第一对象节点;
和/或,根据选取的条件查找所述第一对象节点;
和/或,根据显示参数对所述第一对象节点进行自适应展示。
4.根据权利要求3所述的动态加载应用程序的方法,其特征在于,所述方法包括:
根据所述权限,对所述第一对象节点和/或所述第二对象节点具有数据处理权限的用户才能对所述第一对象节点和/或所述第二对象节点进行数据处理。
5.根据权利要求1所述的动态加载应用程序的方法,其特征在于,根据所述权限以及对应的子系统列表信息加载子系统列表页,包括:
调用列表查询接口发送登录令牌;接收所述列表查询接口返回的子系统列表信息,所述子系统列表信息包括所述子系统信息以及对应的对象节点标识,所述子系统信息包括子系统名称和子系统标识;
根据所述子系统信息以及所述子系统对应的所述对象节点标识,确定所述第一对象节点,在所述子系统列表页加载所述第一对象节点。
6.根据权利要求1所述的动态加载应用程序的方法,其特征在于,根据所述节点查询请求加载对应的子系统主页:
调用节点查询接口发送节点查询请求,所述节点查询请求包括所述子系统标识和对应的对象节点标识;
响应于所述节点查询请求,返回节点查询结果,所述节点查询结果包括所述第二对象节点的标识、所述第二对象节点对应的路径、所述第二对象节点的上一级的所述第一对象节点的标识或所述第二对象节点的标识以及下一级的所述第二对象节点标识;
根据所述节点查询结果加载子系统主页。
7.根据权利要求6所述的动态加载应用程序的方法,其特征在于,所述多级嵌套结构为树状结构,所述树状结构包括依次嵌套的所述第一对象节点、所述第二对象节点和第三对象节点,所述第三对象节点用于展示设定网页信息;
利用所述第二对象节点对应的路径或所述第三对象节点对应的路径区分是否为所述第三对象节点。
8.根据权利要求1所述的动态加载应用程序的方法,其特征在于,所述方法还包括:
根据所述用户的配置参数在所述子系统主页中设置样式参数;
和/或,通过所述子系统主页获取所述用户对应的用户信息并进行管理。
9.一种动态加载应用程序的装置,其特征在于,所述应用程序包括多个子系统,所述装置包括:
登录组件,用于发起用户的登录操作请求;
登录模块,用于响应于所述登录操作请求获取所述用户的权限;
子系统列表组件,用于根据所述权限以及对应的子系统列表信息加载子系统列表页,所述子系统列表页包括第一对象节点,所述第一对象节点采用列表形式展示对应的所述子系统的属性;
子系统主页组件,用于基于所述子系统列表信息,接收所述用户的节点查询请求,根据所述节点查询请求加载对应的子系统主页,所述子系统主页包括作为所述第一对象节点下级的至少一个第二对象节点,各所述第二对象节点与对应的所述第一对象节点构成多级嵌套结构,每一所述第二对象节点用于展示与其对应的所述子系统的属性;
页面无限嵌套组件,用于响应于所述节点查询请求,自所述第一对象节点的下一级所述第二对象节点在所述子系统主页中嵌套加载各所述第二对象节点。
10.根据权利要求9所述的动态加载应用程序的装置,其特征在于,所述登录组件包括:
用户标识模块,用于与所述用户进行通信,发起所述登录操作请求;
认证因子展示模块,用于展示多种认证因子。
11.根据权利要求9所述的动态加载应用程序的装置,其特征在于,所述登录模块包括:
认证因子管理器,用于管理多种认证因子;
规则引擎,用于基于所述登录操作请求和预设规则选取所述认证因子;
认证引擎,用于根据选取的所述认证因子,调用所述认证因子对应的认证方法,对所述用户进行认证;认证通过后生成登录令牌,将所述登录令牌传递至所述用户,并获取所述用户的所述权限。
12.根据权利要求9所述的动态加载应用程序的装置,其特征在于,所述子系统列表组件包括:
列表展示模块,用于根据所述权限加载对应的所述第一对象节点,并对所述第一对象节点采用列表形式展示对应的所述子系统的属性;
和/或,排序和筛选模块,用于根据选取的数据处理规则对所述第一对象节点进行数据处理,所述数据处理包括排序和筛选;加载所述数据处理后的所述第一对象节点;
和/或,搜索模块,用于根据选取的条件查找所述第一对象节点;
和/或,响应式设计模块,用于根据显示参数对所述第一对象节点进行自适应展示。
13.根据权利要求9所述的动态加载应用程序的装置,其特征在于,所述子系统主页组件包括:
页面布局模块,用于根据所述用户的配置参数在所述子系统主页中设置样式参数。
14.根据权利要求9所述的动态加载应用程序的装置,其特征在于,所述装置还包括个人中心组件,所述个人中心组件用于通过所述子系统主页获取所述用户对应的用户信息并进行管理。
15.一种计算机可读存储介质,其特征在于,其存储有可由计算机设备执行的计算机程序,当所述程序在计算机设备上运行时,使得所述计算机设备执行权利要求1~8任一所述动态加载应用程序的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311402358.2A CN117407087A (zh) | 2023-10-26 | 2023-10-26 | 一种动态加载应用程序的方法、装置和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311402358.2A CN117407087A (zh) | 2023-10-26 | 2023-10-26 | 一种动态加载应用程序的方法、装置和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117407087A true CN117407087A (zh) | 2024-01-16 |
Family
ID=89497630
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311402358.2A Pending CN117407087A (zh) | 2023-10-26 | 2023-10-26 | 一种动态加载应用程序的方法、装置和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117407087A (zh) |
-
2023
- 2023-10-26 CN CN202311402358.2A patent/CN117407087A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20210073051A1 (en) | Late connection binding for bots | |
US11175796B2 (en) | Menu management method, server, and system | |
US9015651B2 (en) | Gateway data distribution engine | |
US8056092B2 (en) | Method and apparatus for widget-container hosting and generation | |
US9864671B1 (en) | Systems and methods of live experimentation on content provided by a web site | |
US20080082627A1 (en) | Method and Apparatus for Widget Container/Widget Tracking and Metadata Manipulation | |
US20070239726A1 (en) | Systems and methods of transforming data for web communities and web applications | |
US9497260B2 (en) | Communication between two web applications | |
US11882154B2 (en) | Template representation of security resources | |
US20080005238A1 (en) | Roaming consistent user representation information across devices and applications | |
CN109428877B (zh) | 一种用于通过用户设备访问业务系统的方法和装置 | |
US20130304836A1 (en) | Method and apparatus for processing micro web log messages | |
CN114296833B (zh) | 业务界面组件配置方法及其装置、设备、介质 | |
CN103841154B (zh) | 网络媒介信息发布方法、系统和客户端 | |
CN102457579A (zh) | 一种在云终端上实现业务处理的方法和系统 | |
Andersson et al. | Mobile e-services using HTML5 | |
CN114647412A (zh) | 内容显示方法及终端设备 | |
CN117407087A (zh) | 一种动态加载应用程序的方法、装置和存储介质 | |
CN110297976A (zh) | 基于云检索的推荐方法、装置、设备及可读存储介质 | |
CN112286340A (zh) | 用户内容的交互方法、系统和装置 | |
CN112035770A (zh) | 一种页面的显示方法、装置、计算机设备和存储介质 | |
US20090280842A1 (en) | Computer-based method and system for processing a file request in response to a message received from a user mobile device | |
CN108881344B (zh) | 业务处理方法、装置、存储设备及处理服务器 | |
US10878471B1 (en) | Contextual and personalized browsing assistant | |
CN107862084A (zh) | 基于web服务的数据管理方法、装置及存储介质 |
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 |