进程间通信(IPC)

来源:互联网 发布:数组指定位置添加元素 编辑:程序博客网 时间:2024/06/05 22:29

实现打开一个App并传输数据效果

一、url schemes 法

1.程序->info->URL Types->点击"+"

2.配置URL Schemes,在url schemes 中输入 myApp:

配置结束后打开safari(只能是Safari打开),在网址栏中输入  " myApp:// "  ,点击前往就可以打开你的app了

上面提到的是打开,传值在这个基础上进行

接下来在自己的程序中的appDelegate中实现代理方法

-(BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation

{

此函数便是URL Call的处理函数,每当其他应用通过URL打开此应用时,该函数都会被调用。

参数url是传进的url,sourceApplication是呼叫应用的bundle identifier,通过此参数,应用可以对呼叫的应用进行过滤。annotation是呼叫过程中可以附加的额外参数,这里没有用到。

}

如果要传值,将值放在myApp://后面,如myApp://别的地方传过来的值,那么在上述代理方法里面就可以拿到这个url,当然也包括这个值

注意:另一个app里面要调用openURL:实现app跳转

对url schemes 的说明

 大多数情况下系统中只有一个活动的应用在运行,加上iOS内不同应用由于沙箱运行导致的高度隔离,我们熟悉的那些IPC方法,例如管道、邮槽、共享内存、Socket等,往往会显得比较无力了,针对此种情况,苹果也提供了对应的解决方案,也就是我们今天将要介绍的:URL Schema

简单来说,URL Schema就是iOS内的应用调用协议,应用A可以声明自定义的调用协议,就如http/https那样,当另一个应用B打算在应用内打开应用A时,可以打开使用A自定义的协议开头的URL来打开A,除了协议头,URL中还可以附加其他参数,具体过程参见下图:
这个就是Safari与Alocola之间的交互过程。

二、

0 0