iOS9でそんなに大きく取り上げられなかったのに開発者には頭のいたいATS, App Transfer Security。
APIをいくつかしか使ってないってなら「対応待ち」「例外設定」などで対応できますが、
沢山の外部サイトにリンクするアプリの場合はどうするの?ってことで。
結論「SFSafariViewControllerを使おうよ(見た目気にしなければ)」ってことです。
SFSafariViewControllerは「SafariのVC実装」なので、HTTPのサイトも表示できます。
で、こんな感じで実装してあげます。
ViewController
Class safari = NSClassFromString(@"SFSafariViewController");
if (safari != nil) {
SFSafariViewController *safariViewController =
[[SFSafariViewController alloc] initWithURL:[NSURL URLWithString:@"http://example.com/"]];
[self presentViewController:safariViewController
animated:YES
completion:nil];
} else {
//iOS8以下の場合の処理。独自またはサードパーティのWebViewController呼び出しなど。
}
他にもやり方はそれぞれだろうとは思いますが、手っ取り早く外部リンク解決できます。
もちろん
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"http://example.com/"]];
ってSafari呼び出しもていいんですけどね。