首页 > 其他分享 >APP中弹窗统一管理的思考

APP中弹窗统一管理的思考

时间:2023-05-03 14:34:18浏览次数:31  
标签:思考 tab 展示 APP private PopWrapper Tab 弹窗

背景

在项目的开发过程中,我们会碰到各种各样的弹窗,特别是启动的时候有许多弹窗都是需要显示的。在这种情况下,我们就需要对弹窗进行统一的管理,否则会出现弹窗重叠显示的问题,以及相互依赖的弹窗弹出的顺序不正确的问题或者同一弹窗会多次显示的问题。基于以上的原因,我们有必要对弹窗进行统一的管理。

目标

  1. 可以给所有的弹窗设置优先级
  2. 根据优先级排序,顺序展示各个弹窗
  3. 支持给弹窗设置TAB限制
  4. 对于支持Native和Flutter的弹窗,统一由Native管理

思考

  1. 由于要排序,所以要求启动的时候就把不限制Tab以及首页的弹窗加入队列
  2. 支持切换Tab,根据当前的Tab限制过滤展示的弹窗,且要重新从头开始执行
  3. 每个弹窗都指定一个固定且唯一的标识,用于处理弹窗重复的问题
  4. 添加到队列中的弹窗可以预先请求数据并缓存,若不需要展示可以提前告知Manager,在执行到对应弹窗时,直接跳过
  5. 执行到某个弹窗时,根据请求结果确定是否展示

方案设计

  1. 弹窗所需要的属性
// 弹窗所需要的属性
public class PopWrapper {
	// 弹窗类型,即唯一标识码
	private String popId;
	// 弹窗描述
	private String name;
	// tab限制 
	private Tab tab;
	// 优先级
	private int priority;
	// 是否显示
	private Boolean isShow;
	// 是否显示过
	private Boolean isShowed;
}
//  Tab的类型,可根据业务不同自行修改
enum Tab {
	none, // 不限制
	home, // 首页
	mine, // 我的
}
  1. Manger的主要方法
// 初始化的时候向Manager添加弹窗
addPops(List<PopWrapper> pops)
// 设置对话框是否需要显示
isShowPop(PopWrapper pop, Boolean show)
// 对话框展示结束
endShow(PopWrapper pop)
// 切换Tab,并添加需要展示的新弹窗
switchTab(Tab tab, List<PopWrapper> pops)
// 重新开始执行
resumeShow()
// 挂起
suspendShow()

标签:思考,tab,展示,APP,private,PopWrapper,Tab,弹窗
From: https://www.cnblogs.com/AliliWl/p/17369026.html

相关文章

  • uniapp中swiper设置自适应高度
    原文链接:https://www.jianshu.com/p/6a2fa0f1f86euniapp中如何设置swiper的高度自适应的问题解决uniapp中的swiper组件可以用来做滑动切屏的,但是有个不好的地方,就是必须设置一个固定的高度,对于在每一个swiper-item里的内容可能不一定的情况,就会造成内部的内容不能自动撑开,......
  • 关于线程安全的思考
    线程安全是什么?维基百科:线程安全是程序设计中的术语,指某个函数、函数库在多线程环境中被调用时,能够正确地处理多个线程之间的公用变量,使程序功能正确完成。《Java并发编程实战(JavaConcurrencyInPractice)》的作者BrianGoetz:当多个线程同时访问一个对象时,如果不用考虑这些......
  • appuploader   iOS 应用自动发布
    appuploader是一款专门为iOS和Android开发人员设计的自动化工具,可以帮助开发人员轻松解决一些繁琐的任务,例如生成屏幕截图、处理配置文件和发布应用程序等。这个工具可以让开发人员在不同的环境下自定义和运行发布管道,使得整个应用的发布过程更加简单和自动化。使用appuploade......
  • appuploader   iOS 应用自动发布
    appuploader是一款专门为iOS和Android开发人员设计的自动化工具,可以帮助开发人员轻松解决一些繁琐的任务,例如生成屏幕截图、处理配置文件和发布应用程序等。这个工具可以让开发人员在不同的环境下自定义和运行发布管道,使得整个应用的发布过程更加简单和自动化。使用appuploader......
  • appuploader   iOS 应用自动发布
    appuploader是一款专门为iOS和Android开发人员设计的自动化工具,可以帮助开发人员轻松解决一些繁琐的任务,例如生成屏幕截图、处理配置文件和发布应用程序等。这个工具可以让开发人员在不同的环境下自定义和运行发布管道,使得整个应用的发布过程更加简单和自动化。使用appupl......
  • appuploader   iOS 应用自动发布
    appuploader是一款专门为iOS和Android开发人员设计的自动化工具,可以帮助开发人员轻松解决一些繁琐的任务,例如生成屏幕截图、处理配置文件和发布应用程序等。这个工具可以让开发人员在不同的环境下自定义和运行发布管道,使得整个应用的发布过程更加简单和自动化。使用appuploader......
  • appuploader   iOS 应用自动发布
     appuploader是一款专门为iOS和Android开发人员设计的自动化工具,可以帮助开发人员轻松解决一些繁琐的任务,例如生成屏幕截图、处理配置文件和发布应用程序等。这个工具可以让开发人员在不同的环境下自定义和运行发布管道,使得整个应用的发布过程更加简单和自动化。使用app......
  • 12 BTC-思考
    《区块链技术与应用》课程链接:https://www.bilibili.com/video/BV1Vt411X7JF/?spm_id_from=333.337.search-card.all.click12BTC-思考目录12BTC-思考哈希指针,比特币很多设计使用了hash指针,指针保存的只是本机的内存地址,发送到其他计算机上就没有意义,那么,在发布区块的时候,h......
  • Meta Shop 元宇宙商城:Facebook主播最爱的移动电商平台app
    新加坡一家高科技独角兽公司 MetaShop【元宇宙商城】自2022年成立以来,已迅速成为Facebook主播和消费者们的最爱,也是东南亚最受欢迎的选品购物类APP。这款移动电商平台为消费者提供了一种全新的购物体验,主播在带货过程中可以更轻松地选择适合他们的商品,而买家也可以在移动端便捷购......
  • 如何避免单点风险:基于实践经验分享服务拆分原则的一些思考
    缘起:系统崩了具体情况:1%的请求影响了剩余90%的请求架构演进:拆分热点服务【进程级隔离】复盘总结拆服务的经典实践 不能变形的变形金刚也叫变形金刚?缘起系统崩溃了?别惊慌!这里有快速恢复的方法!分析发现,网站崩时服务X被流量打垮,继而依赖服务X的其它服务开始......