0

[locationManager requestAlwaysAuthorization];現在、 と を使用して、常に位置情報サービスを要求するようにアプリをセットアップしています。NSLocationAlwaysUsageDescription

これは問題なく動作しますが、下のスクリーンショットのように、アプリを使用している間のみ位置情報サービスを使用するオプションを提供したいと思います.

私は追加しようとしましNSLocationWhenInUseUsageDescriptionたが、これは彼が常に要求するオーバーライドであり、使用中にのみ警告を発します。設定で両方のオプションを誰に提供するかについてのアイデアはありますか?

4

2 に答える 2

0

最初に、独自のダイアログを使用して、常に/アプリを使用するときの 2 つのオプションを使用してユーザーに尋ねます。次に、ユーザーの選択に従って、適切な許可要求を呼び出します。

また:

[locationManager requestAlwaysAuthorization];

また:

[locationManager requestWhenInUseAuthorization];

plist に両方を含めることは有効であるため、問題はありません。コードで実際にいつリクエストするかによって異なります。

ただし、維持するのは少し難しいので、適切なコード構造が重要です。

于 2015-09-11T09:38:58.137 に答える
0

組み込みの iOS アラートは、1 レベルの許可のみを許可し、ユーザーに 1 回だけ要求します。ほとんどのアプリはどちらか一方しか必要としないという前提があります。いずれにせよ、設定に両方のオプションを表示したい場合は、Always許可を求める必要があります。

ただし、さらに重要なことは、このAlways設定は、バックグラウンドでの位置情報の更新を必要とするアプリでのみ使用されることです。したがって、アプリで必要でない限り、要求するべきではありません。また、バックグラウンド位置情報モードを使用すると、アプリのレビュー プロセス中にアプリがより厳しく精査されることになります。

于 2015-09-11T23:40:53.503 に答える