17

現在、[設定] でアプリのカメラのアクセス許可を変更してからアプリに戻ると、アプリが強制的に更新され、アプリ内での場所が失われます。私は次の手順を正確に実行します。

  1. カメラ権限を使用するアプリを開きます。
  2. アプリ内の画面に移動します (後で更新を視覚的に確認できるようにします)
  3. 設定アプリに移動し、アプリの設定に移動して、カメラの許可を切り替えます
  4. ホームをダブルクリックして、アプリに戻ります。数秒後に更新され、最初の画面に戻ります

注: iOS 8.4 を実行している iPhone 6 を使用しています。

カメラのアクセス許可を持つすべてのアプリでこの動作に気付きました。私の質問は: カメラの許可を変更した後、(再開時に) アプリが更新/再起動するのを防ぐ方法はありますか? たとえば、位置情報サービスを切り替えるときは発生しないようで、使いやすさの観点からこれは恐ろしいことです.

ユーザー シナリオ: ユーザーがアプリの奥深くまで移動し、カメラのアクセス許可を変更する必要がある場合 (前回は誤ってクリックしなかったなど)、戻ったときにその画面に戻るよう強制されます。これは、何かを販売したり、新しいアカウントにサインアップしたりしようとするアプリにとって特に有害です。カメラを使ってプロフィール写真を撮ったり、クレジット カードをスキャンしたりできる新機能を導入しようとするかもしれません。ユーザーはこの機能を知らなかったため、以前はカメラへのアクセスを拒否していた可能性がありますが、今は有効にしたいと考えています。再有効化を試みた後、ユーザーはアプリに戻ってきて、サインアップ/購入に 5 分以上費やさなければならないことに気付きました。その後、私もおそらくあきらめるでしょう。

4

2 に答える 2

3

受け入れられた答えは正しいですが、回避策は現在のバージョンの iOS (9.2) では機能しないようです。UIApplicationWillTerminateNotification が起動される前にアプリケーションが終了するようです。ただし、UIApplicationDidEnterBackgroundNotification をリッスンすることで、同じことが実現できます。たとえば、Swift では、これを viewDidLoad() に入れます。

NSNotificationCenter.defaultCenter().addObserver(self, selector: "enteringBackground:", name: UIApplicationDidEnterBackgroundNotification, object: nil)

次のような関数があります。

func enteringBackground(sender:AnyObject){
    // Save application state here
}
于 2016-01-09T00:53:20.887 に答える