在开发的时候遇到需要从其他APP调用自己的APP的需求,比如从Safari中打开APP,并且传递一些信息的需要
1、首先设置自己的URL types
打开项目中的工程文件,打开info选项,在下面的URL types中添加自己APP的Identifier,并且自定义一个自己的scheme,如图:

举个例子,设定自己的APP的scheme为 myApp;
2、其他应用的调用
其他的用如果想要调起自己的APP,需要执行如下类似代码
NSString *paramStr = [NSString stringWithFormat:@"myApp://userInfo....."];
NSURL *url = [NSURL URLWithString:[paramStr stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
[[UIApplication sharedApplication] openURL:url];
myAPP://后面就是需要传进来的值
3、接受被调起并且获取传来的值
在appdelegate中添加如下方法
-(BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation {
NSString *tmpUrl = [url absoluteString];
return YES;
}
url就是 myApp后面的 userInfo.....
sourceApplication主动调起的应用的bundle id
在自己的应用中设定对应的参数来接收数据。需要传递的数据信息可以拼接成url的字符串
网友评论