重複の可能性:
CLLocation ask again for permission
位置情報サービスをオンにするようユーザーに促す方法…もう一度
ユーザーが「いいえ」と言った場合にプロンプトを表示し続けるために、「現在の場所を使用する」というアラートが必要です。
現在、私が取り組んでいるアプリでは、ユーザーが「いいえ」と言った場合、プロンプトは二度と表示されません。ビューコントローラーに戻った場合にプロンプト/アラートを維持する方法を考えています。
助けてくれてありがとう
重複の可能性:
CLLocation ask again for permission
位置情報サービスをオンにするようユーザーに促す方法…もう一度
ユーザーが「いいえ」と言った場合にプロンプトを表示し続けるために、「現在の場所を使用する」というアラートが必要です。
現在、私が取り組んでいるアプリでは、ユーザーが「いいえ」と言った場合、プロンプトは二度と表示されません。ビューコントローラーに戻った場合にプロンプト/アラートを維持する方法を考えています。
助けてくれてありがとう
私はそれが一度だけ尋ねるように設計されていると確信しています(そして正当な理由で)。アプリで位置情報サービスが有効になっているかどうかを確認し、「位置情報サービスを有効にしてください...」などのメッセージを表示できます。
編集:位置情報サービスが有効になっているかどうかを確認できます
[CLLocationManager authorizationStatus] == kCLAuthorizationStatusAuthorized
- (void)locationManager:didFailWithError:(NSError *)error
のようなメソッドを呼び出そうとすると、Corelocationmanager が起動しますstartUpdatingLocation
。したがって、次のコードを使用して、ユーザーが位置監視を拒否したかどうかを確認できます。
- (void)locationManager:(CLLocationManager *)manager didFailWithError:(NSError *)error {
if([error code] == kCLErrorDenied){
//Alert view
}
}
場所の警告をリセットすることで、Corelocation アラートを再度有効にすることができます。[設定] > [一般] > [リセット] > [位置情報の警告をリセット] に移動します。また、アラートビューを追加して、ユーザーに設定アプリケーションに移動し、そこで場所の警告をリセットするように求めることもできます。アラート ビュー デリゲート内で次のコードを使用して、設定アプリケーションを開きます。
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"prefs://"]];