ユーザーが現在地アラートに応答したかどうかを確認するにはどうすればよいですか
「アプリが現在地を使用しようとしています」または「アプリがプッシュ通知を送信しようとしています」</p>
ユーザーがどの選択肢を選択したかは気にしません。アラートが無視されたかどうかだけを知る必要があります。
ユーザーがこのアラートを無視したときにメッセージを直接受け取ることはありませんが、CLLocationDelegate の- (void)locationManager:(CLLocationManager *)manager didChangeAuthorizationStatus:(CLAuthorizationStatus)status
メソッドを実装できます。それと CLLocationManager の静的authorizationStatus
プロパティを確認する間に、通常、ユーザーがアプリで位置情報サービスを許可しているかどうかを確認できます。
Appleはそれを禁止しているので、あなたはそれをすることはできません!
編集:あはは、質問に誤ってタグを付けたことに気づきましたuialertview
。
位置アラートの場合、次のことができます。
- (void)locationManager:(CLLocationManager *)manager
didFailWithError:(NSError *)error {
if (error.code == kCLErrorDenied) {
NSLog(@"Location manager denied access - kCLErrorDenied");
UIAlertView *alert =
[[UIAlertView alloc] initWithTitle:@"Location issue"
message:@"Your location cannot be determined."
delegate:self
cancelButtonTitle:@"OK" otherButtonTitles:nil];
[alert show];
}
}
プッシュ通知の場合、次のことができます (ただし、ユーザーが応答したかどうかは不明です)。
UIRemoteNotificationType status = [[UIApplication sharedApplication] enabledRemoteNotificationTypes];
if (status == UIRemoteNotificationTypeNone) {
NSLog(@"User is not subscribed to receive push notifications");
}