A页面:
在要启动的那个APP里的plist那创建这个结构,如下图。
注:Schemes里的value必填,identifier可填。
在APPDelegate类实现这个方法,接受传过来的参数。
- (BOOL)application:(UIApplication*)application handleOpenURL:(NSURL*)url{
//处理传递过来的参数
UIAlertView*alertView;
NSString*text = [[urlhost]stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
alertView = [[UIAlertViewalloc]initWithTitle:@"Text" message:text delegate:nil cancelButtonTitle:@"OK"
otherButtonTitles:nil];
[alertViewshow];
returnYES;}
B页面:
iOS9以后为了安全,调用第三方APP时,需要先在当前APP上添加一下白名单(在plist里添加)
<key>LSApplicationQueriesSchemes</key>
<array>
//qq是mqq
<string>mqq</string>
//myapp 是刚测试用的
<string>myapp</string>
</array>
添加白名单后再这样判断就哦了。
if([[UIApplicationsharedApplication]canOpenURL:[NSURLURLWithString:@"myapp://"]]) {
//如果已经安装客户端,就使用客户端打开链接
[[UIApplicationsharedApplication]openURL:[NSURLURLWithString:@"myapp://"]];
}else{
//否则使用Mobile Safari或者内嵌WebView来显示
url = [NSURL URLWithString:[NSString stringWithFormat:@"http://item.taobao.com/item.htm?id=%@", itemId]];
//[[UIApplication sharedApplication] openURL:url];
}
```
NSURL*url = [NSURLURLWithString:[String stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
```
注释下:如果传中文的话,需要转一下码,如上边代码