Share Extension 这篇文章就不多讲了。
单纯的说一下从前辈那里请教来的如何从 Share Extension 跳转到 Containing App 吧。

代码

 NSURL *customURL = [NSURL URLWithString:@"ShareKit://"];
SEL sel = NSSelectorFromString(@"openURL:");
NSExtensionContext *context = [[NSExtensionContext alloc]init];
[context openURL:customURL completionHandler:nil];
UIResponder *responder = self;
while (responder != nil){
    if ([responder respondsToSelector:sel]) {
        [responder performSelector:sel withObject:customURL];
    }
    responder = responder.nextResponder;
}

原理

代码是从前辈那里请教过来的,原理就是利用 UIResponder 查找响应链。直接在 Extension 中调 openURL 方法是会闪退的,因为响应不了方法。
所以使用 UIResponder,从响应树上查找能够响应这个方法的对象,也就是 Safari,或者其他使用原生分享的 App

用途

用途这块实际上也没必要多说,不过说一点,这个功能上架不会被拒,像是 QQ浏览器微信支付宝 等等都有这种跳转的功能,不过 微信 的及其隐蔽。所以大家在使用中可能还是得把入口藏得深一些了。