一种UI路由组件、基于UI路由组件的iOS模块间跳转方法和装置制造方法及图纸

技术编号:38391686 阅读:9 留言:0更新日期:2023-08-05 17:44
本发明专利技术涉及iOS应用开发技术领域,公开了一种UI路由组件、基于UI路由组件的iOS模块间跳转方法和装置,所述方法包括:响应于应用模块初始化,向UI路由组件发送注册路由表请求,通过静态注册和(或)动态注册进行路由表的注册;设于源模块的源控制器向所述UI路由组件发送路由跳转请求,所述UI路由组件接收所述路由跳转请求并判断能否进行模块内部跳转;若能够进行模块内部跳转,通过VC视图控制器判断是否满足当前页面跳转,于满足当前页面跳转时,进行当前页面跳转;若不能进行模块内部跳转,利用所述UI路由组件进行跳转检测,执行模块外部跳转;本发明专利技术能够实现App外部和内部的统一跳转,为应用开发“高内聚,低耦合”提供了保障。提供了保障。提供了保障。

【技术实现步骤摘要】
一种UI路由组件、基于UI路由组件的iOS模块间跳转方法和装置


[0001]本专利技术涉及iOS应用开发
,特别是涉及一种UI路由组件、基于UI路由组件的iOS模块间跳转方法和装置。

技术介绍

[0002]iOS是由苹果公司开发的移动操作系统。苹果公司利用沙盒机制来确保用户的隐私安全和信息安全,也就是说,在iOS操作系统中,应用程序(App)之间均相互独立,所有提交到App Store的应用程序都只能访问其声明可能访问的资源。这种机制虽然有效保障了用户的安全问题,但在一定程度上阻碍了App之间的信息通讯,URL Scheme方案应运而生。URL Scheme方案提供了一种引用应用内资源的方法,具体而言,是在app上注册自己的URL scheme并与app进行绑定,该URL Scheme能够从其他app中启动该app,进而实现不同应用程序间的信息共享。基于苹果公司提供的多种视图形态和跳转方法,比如xib、storyboard、自定义Class及push、present等,虽然可以提高iOS应用程序的开发效率和用户体验,但也可能给开发者带来一些困难。首先,对于新手开发者来说,学习和掌握这些视图形态和跳转方法需要一定的学习成本和实践经验。不同的视图形态和跳转方法有着不同的使用场景和适用范围,开发者需要了解它们之间的区别和联系,才能更好地进行应用程序的设计和开发。同时,由于这些技术本身也在不断更新和演进,开发者需要时刻跟进最新的开发技术和最佳实践,才能保持竞争力。其次,使用不当可能会导致代码可读性、维护性和可扩展性等方面的问题。比如,在使用storyboard时,如果不注意视图之间的依赖关系和控制流程,可能会导致storyboard文件过于庞大和复杂,难以维护和修改。另外,使用自定义Class时,如果没有合理的代码结构和设计模式,可能会导致代码耦合度高、重复代码多、难以复用和扩展等问题。最后,由于不同的视图形态和跳转方法之间存在着互相依存和影响,因此在进行应用程序设计和开发时需要综合考虑多种因素,比如应用程序的结构、用户体验、代码可读性和维护性等方面。开发者需要进行全面的需求分析和架构设计,才能更好地利用这些技术,提高应用程序的开发效率和用户体验。
[0003]然而,随着App的飞速发展,业务方和用户的体验要求逐步提高,原本的URL Scheme不再满足现实需求,为了提高产品的高效迭代,同时保持产品“高内聚,低耦合”的特点,App模块之间跳转的框架需要横向、纵向不同粒度的分层,方便项目长期的有效开发和维护。

技术实现思路

[0004]为克服上述现有技术存在的不足,本专利技术之目的在于提供一种UI路由组件、基于UI路由组件的iOS模块间跳转方法和装置,通过对苹果模块跳转的多种方法和场景进行封装,运用统一协议接口使模块间跳转更加灵活和便捷,本专利技术URL Scheme协议方案新增可拓展参数控制和认证协议,涵盖了现阶段iOS应用内页所有的跳转方式,是一种更为安全和
先进的iOS应用间通信技术,具有更好的用户体验和更好的支持深度链接的特点。
[0005]为达上述目的,本专利技术提出一种UI路由组件,包括:
[0006]路由管理类,用于对外暴露接口,对内处理功能逻辑、管理各个子模块的行为,包括但不限于接收应用模块发送的路由表注册请求,接收源控制器发送的路由跳转请求,以及判断能否进行模块内部跳转;
[0007]路由表管理模块,用于处理包括但不限于路由表静态注册和(或)动态注册、加载,存储和管理注册的所述路由表,以及查找、获取跳转目标源的行为;
[0008]路由跳转核心模块,用于提供跳转接口,处理从源控制器跳转目标控制器的行为;
[0009]路由跳转附加模块,用于响应于所述路由表管理模块没有查找到跳转目标源,处理模块外部跳转行为,所述模块外部跳转包括但不限于跳转外部浏览器和外部应用;
[0010]路由解析模块,用于处理路由URL解析,包括但不限于当前页面跳转时,对跳转请求参数进行解析。
[0011]为达上述目的,本专利技术还提出一种基于UI路由组件的iOS模块间跳转方法,包括如下步骤:
[0012]响应于应用模块初始化,向UI路由组件发送注册路由表请求,通过静态注册和(或)动态注册进行路由表的注册;
[0013]设于源模块的源控制器向所述UI路由组件发送路由跳转请求,所述UI路由组件接收所述路由跳转请求并判断能否进行模块内部跳转;
[0014]若能够进行模块内部跳转,通过VC视图控制器判断是否满足当前页面跳转,于满足当前页面跳转时,进行当前页面跳转;
[0015]若不能进行模块内部跳转,利用所述UI路由组件进行跳转检测,执行模块外部跳转。
[0016]优选地,所述通过静态注册和(或)动态注册进行路由表的注册,进一步包括:
[0017]于路由表注册时,所述UI路由组件利用VC视图控制器提供scheme、host和路由表配置信息,路由协议提供协议方法,所述协议方法包括自定义跳转的协议方法;
[0018]使用单一静态注册或者单一动态注册,或者静态注册和动态注册两种方式混合使用,且能够实时增加和覆盖。
[0019]优选地,所述静态注册包括如下步骤:
[0020]响应于访问者编辑所述路由表配置信息,所述应用模块初始化后,调用静态注册路由表接口,所述UI路由组件根据传入的所述路由表配置信息完成路由表的注册;
[0021]其中,所述路由表的配置信息包括文件方式和字典方式,所述文件方式支持json文件格式和plist文件格式。
[0022]优选地,所述动态注册包括如下步骤:
[0023]利用VC视图控制器实现路由协议,所述应用模块初始化后,调用动态注册路由表接口,所述UI路由组件内部动态加载所述路由表配置信息,完成路由表注册。
[0024]优选地,所述设于源模块的源控制器向所述UI路由组件发送路由跳转请求,进一步包括:
[0025]所述源控制器调用所述UI路由组件的URL请求路由跳转接口,向所述UI路由组件传入标准格式的URL,对参数进行URL Encode编码;
[0026]或者,所述源控制器调用所述UI路由组件的Action请求路由跳转接口,向所述UI路由组件主动传入scheme、host和parameters。
[0027]优选地,所述UI路由组件接收所述路由跳转请求并判断能否进行模块内部跳转,进一步包括:
[0028]所述UI路由组件接收所述路由跳转请求,解析所述路由表,并比对跳转请求参数scheme、host;
[0029]通过所述UI路由组件查找跳转目标源,若所述路由表中能够查找到跳转目标源,则表示能够进行模块内部跳转。
[0030]优选地,所述若能够进行模块内部跳转,通过VC视图控制器判断是否满足当前页面跳转,于满足当前页面跳转时,进行当前页面跳转,进一步包括:
[0031]将所述路由协议提供给所述VC视图控制器,判断是否满足跳转协议方法,本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种UI路由组件,包括:路由管理类,用于对外暴露接口,对内处理功能逻辑、管理各个子模块的行为,包括但不限于接收应用模块发送的路由表注册请求,接收源控制器发送的路由跳转请求,以及判断能否进行模块内部跳转;路由表管理模块,用于处理包括但不限于路由表静态注册和(或)动态注册、加载,存储和管理注册的所述路由表,以及查找、获取跳转目标源的行为;路由跳转核心模块,用于提供跳转接口,处理从源控制器跳转目标控制器的行为;路由跳转附加模块,用于响应于所述路由表管理模块没有查找到跳转目标源,处理模块外部跳转行为,所述模块外部跳转包括但不限于跳转外部浏览器和外部应用;路由解析模块,用于处理路由URL解析,包括但不限于当前页面跳转时,对跳转请求参数进行解析。2.一种基于UI路由组件的iOS模块间跳转方法,包括如下步骤:响应于应用模块初始化,向UI路由组件发送注册路由表请求,通过静态注册和(或)动态注册进行路由表的注册;设于源模块的源控制器向所述UI路由组件发送路由跳转请求,所述UI路由组件接收所述路由跳转请求并判断能否进行模块内部跳转;若能够进行模块内部跳转,通过VC视图控制器判断是否满足当前页面跳转,于满足当前页面跳转时,进行当前页面跳转;若不能进行模块内部跳转,利用所述UI路由组件进行跳转检测,执行模块外部跳转。3.如权利要求2所述的一种基于UI路由组件的iOS模块间跳转方法,其特征在于,所述通过静态注册和(或)动态注册进行路由表的注册,进一步包括:于路由表注册时,所述UI路由组件利用VC视图控制器提供scheme、host和路由表配置信息,路由协议提供协议方法,所述协议方法包括自定义跳转的协议方法;使用单一静态注册或者单一动态注册,或者静态注册和动态注册两种方式混合使用,且能够实时增加和覆盖。4.如权利要求3所述的一种基于UI路由组件的iOS模块间跳转方法,其特征在于,所述静态注册和动态注册分别包括如下步骤:静态注册:响应于访问者编辑所述路由表配置信息,所述应用模块初始化后,调用静态注册路由表接口,所述UI路由组件所述UI路由组件根据传入的所述路由表配置信息完成路由表的注册;其中,所述路由表的配置信息包括文件方式和字典方式,所述文件方式支持json文件格式和plist文件格式;动态注册:利用VC视图控制器实现路由协议,所述应用模块初始化后,调用动态注册路由表接口,所述UI路由组件内部动态加载所述路由表配置信息,完成路由表注册。5.如权利要求2所述的一种基于UI路由组件的iOS模块间跳转方法,其特征在于,所述设于源模块的源控制器向所述UI路由组件发送路由跳转请求,进一步包括:所述源控制器调用所述UI路由...

【专利技术属性】
技术研发人员:熊平马强
申请(专利权)人:北京无忧创想信息技术有限公司
类型:发明
国别省市:

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

1