昨天跟朋友视频,帮他解决的问题就是应用间跳转以及传参的问题!帮他完成了一个demo,他看的也是迷糊的(自己太菜讲不清除)。就在这系统的总结一些东西。
首先看一张图片:
这两个字段:一个是白名单(你即将打开的APP的URL Schemes的值)这是iOS9以后必须设置的。一个是URL Schemes这个类似于你应用的唯一标示别的APP调用的时候需要知道你这个字段的值。
打开应用的话需要调用如下代码:
- (IBAction)jump3:(id)sender {
NSURL *url = [NSURL URLWithString:@"news://timeLine/yourpath/?username=WT&password=123456&callback=myapp"];
if ([[UIApplication sharedApplication] canOpenURL:url]) {
[[UIApplication sharedApplication] openURL:url];
}
}
很明显 news://timeLine/yourpath/?username=WT&password=123456&callback=myapp 这个就是打开应用的关键,可能会发现news后面有好多个参数:这就是传参的关键了!
在代理方法中:
-(BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options{
NSLog(@"%s====>=====>%@",__func__,url.absoluteString);
return YES;
}
你是可以拿到这个参数的:(也就是说你相传的值是可以放在这个地方在打开应用的时候是可以被取到的)
其中news是URL Scheme 即[url scheme],
timeLine是host,即[url host],
yourpath是path,即[url path],
username=WT&password=123456&callback=myapp 是query即[url query]。