技術ブログ

プログラミング、IT関連の記事中心

Swiftでソースコードでホーム画面に戻る処理(URLSessionTask.suspend)

目次

ホーム画面に戻る方法

以下の処理を行うことで、アプリ起動中にソースコードでホーム画面に戻す事が可能です。

UIControl().sendAction(#selector(URLSessionTask.suspend), to: UIApplication.shared, for: nil)

ホーム画面に戻してからアプリ終了

以下の記事で記載した「exit()」を使用したアプリ終了では、アプリがクラッシュした時と同じような挙動をします。
この挙動では違和感があるため、ホームに戻る処理と合わせる事で、違和感なくアプリ終了を行う事ができます。

https://reigle.info/entry/2022/09/17/100000reigle.info

ホームに戻る処理とアプリ終了を組み合わせて以下の様に実装を行えます。

// ホームへ戻る
UIControl().sendAction(#selector(URLSessionTask.suspend), to: UIApplication.shared, for: nil)
// 0.5秒後にアプリを終了する
Timer.scheduledTimer(withTimeInterval: 0.5, repeats: false) { _ in
    exit(0)
}

時間差をつけているのは、ホームに戻ると同一タイミングだと、クラッシュしたのと同じ様な挙動をするためです。

この方法は、Appleの審査が通ることを保証するものではないので、ご注意ください。