01_应用间跳转
- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<NSString *,id> *)options {
NSString * urlString = url.absoluteString;
NSLog(@"%@", urlString);
UINavigationController * navCtrl = ( UINavigationController * ) self.window.rootViewController ;
[navCtrl popToRootViewControllerAnimated: NO ];
// 有些巧妙,
// 从其他 客户端 进入后, 不退出。 从多任务 窗口 调用 其他客户端 再此 进入, 用 UINavigationController 返回 到 上一级 窗口, 非常正常地 一步 到位。
// 有意思。 好像 手机里的 有些应用 有这方面 问题。
ViewController * ctrl = [navCtrl.viewControllers firstObject ];
// 不是 lastObject
NSArray * array = [urlString componentsSeparatedByString: @"?" ];
if (array.count > 1) {
NSString * sourceUrlString = array[1];
ctrl.scheme = sourceUrlString ;
}
if ( [urlString containsString: @"session" ] ) {
[ctrl performSegueWithIdentifier: @"session" sender: nil ];
} else if ( [urlString containsString: @"timeline" ] ) {
[ctrl performSegueWithIdentifier: @"timeline" sender: nil ];
}
return YES;
}
†
†
†
†
上 错误
我从TestKitchen, 跳转到weixin; 从weixin 上, 跳不回去。
因为我 没有 传值。
我的代码
- (IBAction)sessionAction:(id)sender {
NSURL * url = [NSURL URLWithString: @"weChat://session?" ];// ? 后面, 没东西。
[[UIApplication sharedApplication ] openURL:url ];
}
- (IBAction)timelineAction:(id)sender {
NSURL * url = [NSURL URLWithString: @"weChat://timeline?" ];// ? 后面, 没东西。
[[UIApplication sharedApplication ] openURL:url ];
}
老师的 代码
//微信好友
- (IBAction)sessionAction:(id)sender {
NSURL *url = [NSURL URLWithString:@"wechat://session?kitchen"];
[[UIApplication sharedApplication] openURL:url];
}
//微信朋友圈
- (IBAction)timelineAction:(id)sender {
NSURL *url = [NSURL URLWithString:@"wechat://timeline?kitchen"];
[[UIApplication sharedApplication] openURL:url];
}