iOS进程间通讯的心得
随着iOS的迅速发展,各式各样的app可谓是层出不穷,iOS开发人员在开发的过程中自然而然会遇到很多进程间通信的需求.
闲扯完了,现在进入正题,当时我们的项目需要做分享,产品那边希望做成对方点击分享过去的链接能够直接打开他的本地应用(对方也装了你的app),当时拿到需求文档的时候还是第一次做进程间通讯,分析的时候遇到了如下瓶颈:
1,首先需要在别的app中打开自己的app
2,如何让自己的app知道需要显示哪一个详情页,也就是说如何将值传进来,以为苹果的沙盒机制,所以两个app之间不可能有任何本地交集的
后来经过查资料发现,苹果早已看透了这一切--IPC(进程间通信技术)
配置步骤如下:
1.程序->info->URL Types->点击"+"
2.配置URL Schemes,如下图:
到此配置就结束了,这个时候打开safari(记住只能是Safari打开),然后在网址栏中输入 " (你制定的url schemes):// " 点击'前往'就可以打开你的app了,例如这里我用的是 "happy"
那么只要我在Safari里边输入 "happy://" 为头的url即使不带任何后缀就可以打开我的app了.
上边提到的只是能够打开app,但是并没有做到传值,下边就让我们来探讨一下传值,传值是在上边的配置基础上进行的
首先,在上边的基础上我们还需要实现appdelegate的一个代理方法:
如果上边我是用 "happy://hello" url打开我的app的话,那么我在这个代理方法里边打印openURL的话就会发现打印结果就是我用来打开app的url,
这里是随便传的值,如果把你想要的值拼接到 "happy://" 后边, 就可以实现从一个app传值到另外一个app了.