2

iOSアプリケーションがバックグラウンドに移行する前にスクリーンショットを撮ってください。

公式ドキュメントから入手しました。

バックグラウンドに移行する前にビューから機密情報を削除する:アプリがバックグラウンドに移行すると、システムはアプリのメイン ウィンドウのスナップショットを取得し、アプリをフォアグラウンドに移行するときに短時間表示します。applicationDidEnterBackground: メソッドから戻る前に、スナップショットの一部としてキャプチャされる可能性のあるパスワードやその他の機密性の高い個人情報を非表示または不明瞭にする必要があります。

したがって、ここでは「機密性の高い個人情報」を非表示にすることができ、システムはアプリのメイン ウィンドウのスナップショットを作成するため、その機能を変更することはできません。

でも知りたい..

1)アプリケーションで 4 番目のビューにいて、アプリがバックグラウンドになった場合、システムはどのビュー/ページのスクリーン ショットを取得しますか? 最初のもの (アプリの起動ビュー?) またはアプリの 4 番目のビュー/ページ ?? (これは私にとって少し混乱です)。

2)システムがスクリーンショットを撮っている場合、またはシステムがスクリーンショットを撮っていることを知らせる通知が利用可能な場合、アクションを実行できますか??

3)知りたいのですが、アプリケーションを起動する前に(プログラムで)スクリーン ショットを撮ることはできますか?? はいの場合は、その方法について提案してください。いいえの場合、いつどこでスクリーンショットを撮ることができますか (つまり、アプリケーションのどの最小段階でスクリーンショットを撮ることができるのでしょうか?) 。

4

4 に答える 4

2

1) 画面は 1 つだけです。スクリーンショットはその画面を撮影したものです。あなたのモデルの場合、それは4番目のView Controllerのビューになるはずです。ただし、4 番目のコントローラーのビューが画面全体をカバーしていないか、透明な要素を含んでいる可能性は十分にあります。その場合、3番目または2番目と1番目のView Controllerのビューの一部が画面の一部になります。

ビューコントローラーのショットなどではなく、スクリーンショットです。

2) ドキュメンテーションをよく理解しました。スクリーンショットは、 から戻った後に撮影されたものですapplicationDidEnterBackground。これ以上の文書化はありません。

3) いいえ、アプリが呼び出される前にコードを実行することはできません。しかし、文字通り求めたものとは違うものを探しているように感じます。何らかの理由で、UIApplicatoinMain を呼び出さなくても main 関数のみを実装して、シミュレーターで小さなプログラムを実行しました。これは、アプリのコードが実行される可能性がある最初の時点ですが、正確には「常識外れ」というわけではありません。私の記憶が正しければ、その時点で画面は空白/黒でした。したがって、他のアプリのスクリーンショットを作成する方法を求めている場合、これは先に進む方法ではありません.

于 2013-08-08T07:59:23.930 に答える