LoginSignup
24
24

More than 5 years have passed since last update.

iOS7で起動時にsafariへ飛ばすときにはGCDを使う

Last updated at Posted at 2014-04-25

アプリで自サイトのcookie情報を取りたい時など、起動時にopenURLを使いcustom url schemeで戻すといったことをすると思います。
iOS7ではApplicationDelegateのapplication:didFinishLaunchingWithOptions:等からopenURLを呼んでしまうと、上手く起動せず固まってしまいます。
その対処方法として、一旦GCDを使ってUIスレッドで実行するように指定し、起動処理が終わった後で実行されるようにすると固まることなくsafariへ遷移できます。


- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{

    dispatch_async(dispatch_get_main_queue(), ^{
        [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"https://example.com"]];
    });

    return YES;
}

なんとなく根本的な理由がモヤモヤしておりますが、とりあえずこれでサクッと動くようになります。

参考: OpenUrl freezes app for over 10 seconds

24
24
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
24
24