iOS-启动广告思路

821 阅读3分钟

「这是我参与11月更文挑战的第9天,活动详情查看:2021最后一次更文挑战

原由

最近在开发项目中, 要新增启动广告的需求, 广告是后台自己配的不是接入的三方sdk. 那么启动广告就要自己来实现了, 粗略一想也不是特别难, 应该挺简单的, 不就是在启动前先加一个广告, 然后等广告完成之后再切换rootViewController到首页不就好了吗. 但是在实际的操作中, 还是有很多的小细节存在的, 所以记录下来, 等后面自己再搞相关的东西, 回头再看看.

思路

  1. 广告的展示

广告的展示逻辑还是挺简单的, 在AppDeleate中创建一个adController, 然后adController设置为要展示的Controller, 剩余的逻辑在 adController 中来进行处理.

广告都是有时间限制的, 所以咱们需要一个倒计时的功能, 并且都有跳过的功能, 直接跳过倒计时来到首页.

adController 的底部应该是和启动页一至的, 这样用户看起来就像是无感知一样, 体验更好一点.

  1. 广告的数据

广告的数据是重头戏, 咱们采用本地缓存的方式来进行

APP第一启动的时候不展示广告页直接进入首页, 但是在第一次启动的时候会和服务端请求广告的数据, 然后保存到本地, 最好的方式就是降资源文件(图片, gif, 视频)也一直缓存下来, 这样下次启动的时候就可以直接读取数据了, 使用户的体验更好

APP第二次启动的时候就开始展示咱们已经缓存好的广告数据, 由于上次一次缓存全部数据和资源文件, 所以第二次启动展示广告的时候就没有什么数据的请求, 全部取的是本地的数据和资源文件.

而在缓存数据的时候也是需要做一定的处理的,

咱们不能只保存下一次展示的这条广告, 那么已经缓存过的广告就要删掉? 这样是不太好的, 如果后台运营人员, 到了第三天的时候, 想显示第一天的广告, 那么你本地已经讲数据删除了, 就需要重新下载缓存, 造成了不必要的开销, 所以我们可以尽可能多的将数据缓存到本地

但是又有一个问题, 数据一直缓存的话, 会有很多无用的过期数据产生, 而APP又不知道哪一个有用, 哪一个该删除. 其实好一点的办法就是使用cache的方式, 设置一个过期时间, 等到了过期时间就会自动删除掉该文件.

那么数据部分就完了, 个人觉的还是挺简单的, 可能写的比较乱吧, 见谅

总结

启动广告 仅仅是一个小功能, 但是它背后所因此的关联功能却不是小功能, 在工作中如果要根据功能清单来进行项目排期的话, 如果可以的话尽量多要一点时间, 不然一个小功能的背后有很多个大功能, 到时候连哭都来不及了