13_iOS干货10_APP换肤方案 && APP之间通信方案汇总

一,APP常用的3类换肤方案

1,更新资源包,重新打包,上传appStore审核(周期太长);
2,热修复(速度快,但下发率,苹果严打,以及需要获取相应的图片资源)
3,接口控制:

    1,返回图片地址URL(利用图片缓存框架,缓存完毕所有,再统一更新;后台接口上加入时间控制,可以实现提前的缓存方案)

    2,直接下载图片包zip(多种实现方案:1,使用的Category和KVO去实现了替换皮肤的过程。给UIButton等系统类添加一个Category,添加了设置皮肤的方法,通过KVO去实现了触发控制;2,册了一个通知,判断后台是否启用换肤,启动换肤则加载config.json文件,没有则加载localConfig.json本地默认皮肤)

    3,提前把图片放在资源包中,接口控制是否替换(优点是便于控制,故障率小;缺点是包的体积过大,依赖审核)

参考链接:点击打开链接

二,APP之间常用的5种通信方式

1,配置URL Scheme

    个是iOS app通信最常用到的通信方式,App1通过openURL的方法跳转到App2,并且在URL中带上想要的参数,有点类似http的get请求那样进行参数传递。这种方式是使用最多的最常见的,使用方法也很简单只需要源App1在info.plist中配置LSApplicationQueriesSchemes,指定目标App2的scheme;然后在目标App2的info.plist中配置好URL types,表示该app接受何种URL scheme的唤起

    使用场景:各开放平台SDK的分享功能,如分享到微信朋友圈微博等,或者是支付场景,或者从滴滴打车结束行程跳转到微信进行支付。

2,Keychain方案

        它本质上就是一个sqllite数据库,它的位置存储在/private/var/Keychains/keychain-2.db,不过它所保存的所有数据都是经过加密的,可以用来为不同的app保存敏感信息,比如用户名,密码等。iOS系统自己也用keychain来保存VPN凭证和Wi-Fi密码。它是独立于每个App的沙盒之外的,所以即使App被删除之后,Keychain里面的信息依然存在。基于安全和独立于app沙盒的两个特性,Keychain主要用于给app保存登录和身份凭证等敏感信息,这样只要用户登录过,即使用户删除了app重新安装也不需要重新登录

    使用场景:统一账户登录平台,使用同一个账号平台的多个app,例如第三方登录等;

3,UIPasteboard

    UIPasteboard是剪切板功能,因为iOS的原生控件UITextView,UITextField 、UIWebView,我们在使用时如果长按,就会出现复制、剪切、选中、全选、粘贴等功能,这个就是利用了系统剪切板功能来实现的。而每一个App都可以去访问系统剪切板,所以就能够通过系统剪贴板进行App间的数据传输了。

    使用场景:淘宝口令

4,UIDocumentInteractionController

    UIDocumentInteractionController主要是用来实现同设备上app之间的共享文档,以及文档预览、打印、发邮件和复制等功能。它的使用非常简单

    使用场景:文档共享

5,local socket

    一个App1在本地的端口port1234进行TCP的bind和listen,另外一个App2在同一个端口port1234发起TCP的connect连接,这样就可以建立正常的TCP连接,进行TCP通信了,那么就想传什么数据就可以传什么数据了。这种方式最大的特点就是灵活,只要连接保持着,随时都可以传任何相传的数据,而且带宽足够大。它的缺点就是因为iOS系统在任意时刻只有一个app在前台运行,那么就要通信的另外一方具备在后台运行的权限

    使用场景:导航地图 &&音乐播放

参考链接:点击打开链接

猜你喜欢

转载自blog.csdn.net/a_horse/article/details/80521804