iOS Extension扩展打开宿主应用

1,148 阅读1分钟

iOS Extension扩展打开宿主应用

在Extension中我们很多时候想要打开container app,来实现一些功能,但是在iOS 8.3之后官方禁用了系统方法,并且堵住了用webview打开应用的方法。

关于官方给出的说法:官方文档

官方提供的方法:

[self.extensionContext openURL:[NSURL URLWithString:@"你自定义的 URL scheme"] completionHandler:^(BOOL success) {

}];

此方法只可以在today类型的扩展中使用。如果想在其他类型的Extension打开container app(容器app)则需要使用下面的方法:

UIResponder *responder = self;

while (responder != nil) {

       if ([responder respondsToSelector:@selector(openURL:)]) {

           [responder performSelector:@selector(openURL:)

           withObject:[NSURL URLWithString:@"MobileArk://" ]

          afterDelay:0];

         return ;

    }

    responder = [responder nextResponder];

}