ユーザーが「アプリが現在の場所を使用したい」というポップアップで許可しないを押したときにポップアップを開きたい。そのためのデリゲートメソッドはありますか??
4 に答える
- (void)locationManager:(CLLocationManager *)manager didChangeAuthorizationStatus:(CLAuthorizationStatus)status
{
if (status == kCLAuthorizationStatusDenied) {
// FA1LZ
}
}
チェックlocationManager:didFailWithError:
とlocationManager:didChangeAuthorizationStatus:
のCLLocationManagerDelegate
。
最初に現在地を取得する必要があります。現在地を取得するには、このドキュメントをお読みください。
そして、この方法を使用します
- (void)locationManager:(CLLocationManager *)manager didChangeAuthorizationStatus:(CLAuthorizationStatus)status
パラメーター :
1--manager
イベントを報告するロケーションマネージャオブジェクト。
2-status
アプリケーションの新しい認証ステータス。
この方法の使用
このメソッドは、位置情報サービスを使用するアプリケーションの機能が変更されるたびに呼び出されます。ユーザーがアプリケーションまたはシステム全体の位置情報サービスの使用を許可または拒否したため、変更が発生する可能性があります。
詳細については、公式文書をお読みください
以下のデリゲートメソッドを使用できます。
- (void)locationManager:(CLLocationManager*)manager didFailWithError:(NSError*)error
{
if([error code]== kCLErrorDenied)
self.locationDenied = YES;
switch ([error code]) {
// "Don't Allow" on two successive app launches is the same as saying "never allow". The user
// can reset this for all apps by going to Settings > General > Reset > Reset Location Warnings.
case kCLErrorDenied:
[appDelegate showAllowGPSLocationView];
default:
break;
}
self.locationDefined = NO;
}
ユーザーがGPS位置情報を許可しない場合は、上記のデリゲートメソッドが呼び出されます。また、「kCLErrorDenied」で確認して、やりたいことを何でも処理できます。
ここで、「showAllowGPSLocationView」は「AppDelegate」に実装されたメソッドであり、GPS位置を許可するようにユーザーに通知します。
うまくいけば、それはあなたに役立つでしょう。
ハッピーコーディング:)
乾杯!