사용자가 푸시 알림을 활성화했는지 iPhone에서 확인


답변:


300

전화 enabledRemoteNotificationsTypes와 마스크를 확인합니다.

예를 들면 다음과 같습니다.

UIRemoteNotificationType types = [[UIApplication sharedApplication] enabledRemoteNotificationTypes];
if (types == UIRemoteNotificationTypeNone) 
   // blah blah blah

iOS8 이상 :

[[UIApplication sharedApplication] isRegisteredForRemoteNotifications]

19
iOS 5 : 앱이 휴대 전화 알림 센터의 날씨에 관계없이 앱이 어떤 종류의 푸시 알림을 사용하는지 확인합니다. 앱에 대한 푸시 알림을 비활성화했지만 여전히 유형 == 6을 갖습니다. 소리 및 경고 스타일을 비활성화하면 유형 == UIRemoteNotificationTypeNone이 나타납니다.
quantumpotato

4
양자 감자가 지적 했듯이이 답변은 더 이상 모든 경우를 처리하지 않으며 완벽한 솔루션이 아닙니다.
DBD

5
애플은 어떻게되고 있습니까? 이 문제에 대한 답변을들을 수 있기를 바랍니다. 기본 정보를 모른 채 어떻게 훌륭한 앱을 개발할 수 있을까요?
Oded Regev

15
@ZacBowling- iOS 8사용자가 원격 알림에 등록한 경우에만 확인하므로 솔루션 이상이 잘못되었습니다. 문서에 따르면 :This method reflects only the successful completion of the remote registration process that begins when you call the registerForRemoteNotifications method. This method does not reflect whether remote notifications are actually available due to connectivity issues. The value returned by this method takes into account the user’s preferences for receiving remote notifications.
Apan

5
내 의견으로는 당신도 확인해야합니다[[UIApplication sharedApplication] currentUserNotificationSettings];
Apan

99

양자 감자 문제 :

types의해 주어진 곳

UIRemoteNotificationType types = [[UIApplication sharedApplication] enabledRemoteNotificationTypes];

하나는 사용할 수 있습니다

if (types & UIRemoteNotificationTypeAlert)

대신에

if (types == UIRemoteNotificationTypeNone) 

알림 사용 여부 만 확인할 수 있으며 소리, 배지, 알림 센터 등은 걱정하지 않아도됩니다. 다른 설정에 관계없이 "경고 스타일"이 "배너"또는 "경고 "로 설정되어 있고 "경고 스타일"이 "없음"으로 설정되어 있으면 첫 번째 코드 줄 ( types & UIRemoteNotificationTypeAlert)이 반환 YES됩니다 NO.


이것은 양자 감자의 문제를 다루지 않습니다. 그는 경고에만 관심을 두지 않고 사용자가 알림 센터 설정을 설정 또는 해제했는지 여부에 따라 enabledRemoteNotifications를 통해 식별 할 수 없음을 지적합니다.
Joey

8
내 대답은 바로 "응용 프로그램은 알림 센터에 있는지 방법을 결정하기 위해"대답 할 수 있지만, 확인 할 수있는 방법을 제공 않습니다 사용자가 앱의 알림을 수신할지 여부를 제가 질문의 정신에 응답 생각, . 나는 전자를 확인하는 것이 가능하지 않다고 생각합니다.
팀 캠버

2
"if (유형 및 UIRemoteNotificationTypeAlert)"의 트릭은 매우 좋습니다.
nembleton

트릭이 작동하는 이유를 이해해야합니다! 비트 연산자는 매우 유용하며 Cocoa에서는 비트 마스크가 일반적입니다. 확인 stackoverflow.com/a/3427633/1148702
팀 캠버

2
Swift2 / XCode7에서 비트 연산이 실패하고 이진 연산자 '&'는 두 개의 'UIUserNotificationType'피연산자에 적용 할 수 없습니다 . 대신 포함을 사용할 수 있습니다grantedSettings.types.contains(notificationType)
Philipp Otto

54

최신 버전의 iOS에서는이 방법이 더 이상 사용되지 않습니다. iOS 7과 iOS 8을 모두 지원하려면 다음을 사용하십시오.

UIApplication *application = [UIApplication sharedApplication];

BOOL enabled;

// Try to use the newer isRegisteredForRemoteNotifications otherwise use the enabledRemoteNotificationTypes.
if ([application respondsToSelector:@selector(isRegisteredForRemoteNotifications)])
{
    enabled = [application isRegisteredForRemoteNotifications];
}
else
{
    UIRemoteNotificationType types = [application enabledRemoteNotificationTypes];
    enabled = types & UIRemoteNotificationTypeAlert;
}

2
로컬 알림은 어떻습니까? iOS 8은 이제 사용자가 허용 할 것을 요구합니다. 그러나 나중에 이것이 허용되는지 여부를 확인하는 방법은 무엇입니까?
Frédéric Adda

@FredA. 확인하십시오 UserNotifications. 불행히도 지금은 정답이 없습니다.
Mazyod


3
Swift에서 enabled = types & UIRemoteNotificationTypeAlert를 수행 할 수 없습니다. 오류 : 유형이 부울하지 않습니다
웅대함

53

swift4.0, iOS11의 업데이트 된 코드

import UserNotifications

UNUserNotificationCenter.current().getNotificationSettings { (settings) in
   print("Notification settings: \(settings)")
   guard settings.authorizationStatus == .authorized else { return }

   //Not authorised 
   UIApplication.shared.registerForRemoteNotifications()
}

swift3.0, iOS10 용 코드

    let isRegisteredForRemoteNotifications = UIApplication.shared.isRegisteredForRemoteNotifications
    if isRegisteredForRemoteNotifications {
        // User is registered for notification
    } else {
        // Show alert user is not registered for notification
    }

iOS9부터 swift 2.0 UIRemoteNotificationType은 더 이상 사용되지 않으며 다음 코드를 사용하십시오.

let notificationType = UIApplication.shared.currentUserNotificationSettings!.types
if notificationType == UIUserNotificationType.none {
        // Push notifications are disabled in setting by user.
    }else{
  // Push notifications are enabled in setting by user.

}

푸시 알림이 활성화되어 있는지 확인

    if notificationType == UIUserNotificationType.badge {
        // the application may badge its icon upon a notification being received
    }
    if notificationType == UIUserNotificationType.sound {
        // the application may play a sound upon a notification being received

    }
    if notificationType == UIUserNotificationType.alert {
        // the application may display an alert upon a notification being received
    }

33

아래는 iOS8과 iOS7 (및 그 이하 버전)을 모두 다루는 완전한 예제입니다. iOS8 이전에는 "원격 알림 사용 안함"과 " 잠금 화면 에서만 보기 사용"을 구분할 수 없습니다 .

BOOL remoteNotificationsEnabled = false, noneEnabled,alertsEnabled, badgesEnabled, soundsEnabled;

if ([[UIApplication sharedApplication] respondsToSelector:@selector(registerUserNotificationSettings:)]) {
    // iOS8+
    remoteNotificationsEnabled = [UIApplication sharedApplication].isRegisteredForRemoteNotifications;

    UIUserNotificationSettings *userNotificationSettings = [UIApplication sharedApplication].currentUserNotificationSettings;

    noneEnabled = userNotificationSettings.types == UIUserNotificationTypeNone;
    alertsEnabled = userNotificationSettings.types & UIUserNotificationTypeAlert;
    badgesEnabled = userNotificationSettings.types & UIUserNotificationTypeBadge;
    soundsEnabled = userNotificationSettings.types & UIUserNotificationTypeSound;

} else {
    // iOS7 and below
    UIRemoteNotificationType enabledRemoteNotificationTypes = [UIApplication sharedApplication].enabledRemoteNotificationTypes;

    noneEnabled = enabledRemoteNotificationTypes == UIRemoteNotificationTypeNone;
    alertsEnabled = enabledRemoteNotificationTypes & UIRemoteNotificationTypeAlert;
    badgesEnabled = enabledRemoteNotificationTypes & UIRemoteNotificationTypeBadge;
    soundsEnabled = enabledRemoteNotificationTypes & UIRemoteNotificationTypeSound;
}

if ([[UIApplication sharedApplication] respondsToSelector:@selector(registerUserNotificationSettings:)]) {
    NSLog(@"Remote notifications enabled: %@", remoteNotificationsEnabled ? @"YES" : @"NO");
}

NSLog(@"Notification type status:");
NSLog(@"  None: %@", noneEnabled ? @"enabled" : @"disabled");
NSLog(@"  Alerts: %@", alertsEnabled ? @"enabled" : @"disabled");
NSLog(@"  Badges: %@", badgesEnabled ? @"enabled" : @"disabled");
NSLog(@"  Sounds: %@", soundsEnabled ? @"enabled" : @"disabled");

6
userNotificationSettings.types & UIUserNotificationTypeNone은 항상 false입니다. UIUserNotificationTypeNone은 빈 비트 마스크이므로 다른 비트가 없습니다. 아무도 당신은 평등을 확인하고 싶습니다.
dberwick

25

스위프트 3+

    if #available(iOS 10.0, *) {
        UNUserNotificationCenter.current().getNotificationSettings(completionHandler: { (settings: UNNotificationSettings) in
            // settings.authorizationStatus == .authorized
        })
    } else {
        return UIApplication.shared.currentUserNotificationSettings?.types.contains(UIUserNotificationType.alert) ?? false
    }

iOS10 + 용 RxSwift Observable 버전 :

import UserNotifications
extension UNUserNotificationCenter {
    static var isAuthorized: Observable<Bool> {
        return Observable.create { observer in
            DispatchQueue.main.async {
                current().getNotificationSettings(completionHandler: { (settings: UNNotificationSettings) in
                    if settings.authorizationStatus == .authorized {
                        observer.onNext(true)
                        observer.onCompleted()
                    } else {
                        current().requestAuthorization(options: [.badge, .alert, .sound]) { (granted, error) in
                            observer.onNext(granted)
                            observer.onCompleted()
                        }
                    }
                })
            }
            return Disposables.create()
        }
    }
}

1
당신은 내 하루를 저장합니다. :)
Chetan Dobariya

1
고마워 내가 이것을 한 시간 동안 찾고있었습니다.
Chanchal Warde

4
getNotificationSettings(...)비동기이므로 내부 반환은 무시됩니다
shelll

17

iOS8 이하를 모두 지원하려고 할 isRegisteredForRemoteNotifications때 Kevin이 제안한대로 운이 없었습니다 . 대신 currentUserNotificationSettings테스트에서 큰 효과를 보인를 사용 했습니다.

+ (BOOL)notificationServicesEnabled {
    BOOL isEnabled = NO;

    if ([[UIApplication sharedApplication] respondsToSelector:@selector(currentUserNotificationSettings)]){
        UIUserNotificationSettings *notificationSettings = [[UIApplication sharedApplication] currentUserNotificationSettings];

        if (!notificationSettings || (notificationSettings.types == UIUserNotificationTypeNone)) {
            isEnabled = NO;
        } else {
            isEnabled = YES;
        }
    } else {
        UIRemoteNotificationType types = [[UIApplication sharedApplication] enabledRemoteNotificationTypes];
        if (types & UIRemoteNotificationTypeAlert) {
            isEnabled = YES;
        } else{
            isEnabled = NO;
        }
    }

    return isEnabled;
}

응용 프로그램을 새로 설치 한 경우에는 적용되지 않습니다. 이 메서드는 항상 NO를 반환하며 푸시 알림에 대한 팝업 권한은 나타나지 않습니다. 따라서 장치 설정에서 해당 앱의 알림 설정을 변경 (허용 / 허용 안 함)하려는 경우 앱이 나타나지 않습니다. 누구 든지이 문제를 해결하는 방법을 알고 있습니까?
tyegah123

앱을 삭제하더라도 알림 설정이 유지됩니다. 따라서 앱이 완전히 새로운 사람이라면이 방법이 효과적입니다. 앱이 삭제되었지만 다시 설치되어 있으면 권한이 여전히 시스템에 있고 Apple은 권한을 다시 요청할 수있는 기회를 제공하지 않습니다.
Shaheen Ghiassy

중복 코드가 표시됩니다. 다음 isEnabled = NO;if같이 초기화되었으므로 필요하지 않습니다.NO
Jasper

15

불행하게도 제공 이러한 솔루션 중 어느 것도 실제로는 그것 때문에 관련 정보를 제공하기 위해 올 때 API를 심각하게 부족 하루의 끝에 문제를 해결할 수 없습니다. 당신은 그러나 사용하여 몇 가지 추측 할 수 있습니다 currentUserNotificationSettings정말 질문에 대답에 바로 현재의 형태로는 충분하지 않습니다 (iOS8의 +를). 여기에있는 많은 해결책이 그 또는 isRegisteredForRemoteNotifications그보다 더 확실한 대답이라고 제안하는 것처럼 보이지만 실제로는 그렇지 않습니다.

이걸 고려하세요:

isRegisteredForRemoteNotifications문서 상태 :

시스템 전체 설정을 고려하여 응용 프로그램이 현재 원격 알림에 등록되어 있으면 YES를 반환합니다.

그러나 NSLog동작을 관찰하기 위해 간단히 앱 대리자에게 던질 경우 이것이 예상되는 방식으로 작동하지 않는 것이 분명합니다. 실제로이 앱 / 장치에 대해 활성화 된 원격 알림과 직접 관련이 있습니다. 처음 활성화되면 항상 반환 YES됩니다. YESiOS8부터 앱이 원격 알림을 등록하고 사용자가 알림을 사용하도록 설정하지 않고 기기로 전송할 수 있기 때문에 설정 (알림)에서 설정을 해제해도 여전히이 결과를 반환 합니다. 사용자가 배지 및 소리를 켤 필요가 없습니다. 자동 알림은 알림을 끈 상태에서도 계속 수행 할 수있는 좋은 예입니다.

지금까지로 currentUserNotificationSettings는 네 가지 중 하나를 나타냅니다

알림이 켜져 있습니다. 배지가 켜져 있습니다. 소리가 켜져 있습니다.

이것은 다른 요소 나 알림 스위치 자체에 대한 어떠한 표시도 제공하지 않습니다.

사용자는 실제로 배지, 소리 및 알림을 끌 수 있지만 여전히 잠금 화면이나 알림 센터에 표시됩니다. 이 사용자는 여전히 푸시 알림을 받고 있어야하며 잠금 화면과 알림 센터에서 모두 볼 수 있습니다. 알림 스위치가 켜져 있습니다. 그러나이 currentUserNotificationSettings경우 반환 UIUserNotificationTypeNone합니다. 이것은 실제로 사용자의 실제 설정을 나타내는 것은 아닙니다.

몇 가지 추측을 할 수 있습니다.

  • 경우 isRegisteredForRemoteNotifications입니다 NO당신은이 장치가 성공적으로 원격 알림에 등록 된 적이 있다고 가정 할 수 있습니다.
  • 원격 알림을 처음 등록한 후이 시간에 application:didRegisterUserNotificationSettings:사용자 알림 설정이 포함 된 콜백 이 이루어집니다.이 시간은 사용자가 처음으로 등록되었으므로 설정 권한 요청과 관련하여 사용자가 선택한 것을 표시해야합니다. 설정이 UIUserNotificationTypeNone다음 이외의 항목과 동일하면 푸시 권한이 부여 된 경우 그렇지 않은 경우 거부 된 것입니다. 그 이유는 원격 등록 프로세스를 시작하는 순간부터 사용자는 승인 프로세스의 초기 설정이 등록 프로세스 동안 설정 한 설정 만 허용하거나 거부 할 수 있기 때문입니다.

8

답을 완성하기 위해 다음과 같이 작동 할 수 있습니다 ...

UIRemoteNotificationType types = [[UIApplication sharedApplication] enabledRemoteNotificationTypes];
switch (types) {
   case UIRemoteNotificationTypeAlert:
   case UIRemoteNotificationTypeBadge:
       // For enabled code
       break;
   case UIRemoteNotificationTypeSound:
   case UIRemoteNotificationTypeNone:
   default:
       // For disabled code
       break;
}

편집 : 이것은 옳지 않습니다. 이것들은 비트 단위이므로 스위치와 함께 작동하지 않으므로 이것을 사용하여 종료했습니다.

UIRemoteNotificationType types = [[UIApplication sharedApplication] enabledRemoteNotificationTypes];
UIRemoteNotificationType typesset = (UIRemoteNotificationTypeAlert | UIRemoteNotificationTypeBadge);
if((types & typesset) == typesset)
{
    CeldaSwitch.chkSwitch.on = true;
}
else
{
    CeldaSwitch.chkSwitch.on = false;
}

(내 상황에 따라) 사운드 알림이 활성화되지 않은 것으로 간주했습니다 (앱 기능에 대해 활성화 된 것으로 간주하기 위해 텍스트가 필요하므로)
pojomx

5

iOS7과 그 이전에는 실제로 사용 enabledRemoteNotificationTypes하고 확인해야합니다 (또는 원하는 것에 따라 같지 않음) UIRemoteNotificationTypeNone.

그러나 iOS8의 경우 항상 위의 많은 상태 로만 확인하는 것만으로는 충분 하지 않습니다isRegisteredForRemoteNotifications . 또한 application.currentUserNotificationSettings.types같은지 확인하십시오 (또는 원하는 것에 따라 같지 않음) UIUserNotificationTypeNone!

isRegisteredForRemoteNotificationscurrentUserNotificationSettings.typesreturns 하더라도 true를 반환 할 수 있습니다 UIUserNotificationTypeNone.


5

iOS8 이상 (OBJECTIVE C)

#import <UserNotifications/UserNotifications.h>


[[UNUserNotificationCenter currentNotificationCenter]getNotificationSettingsWithCompletionHandler:^(UNNotificationSettings * _Nonnull settings) {

    switch (settings.authorizationStatus) {
          case UNAuthorizationStatusNotDetermined:{

            break;
        }
        case UNAuthorizationStatusDenied:{

            break;
        }
        case UNAuthorizationStatusAuthorized:{

            break;
        }
        default:
            break;
    }
}];

4
UIRemoteNotificationType types = [[UIApplication sharedApplication] enabledRemoteNotificationTypes];
if (types & UIRemoteNotificationTypeAlert)
    // blah blah blah
{
    NSLog(@"Notification Enabled");
}
else
{
    NSLog(@"Notification not enabled");
}

UIApplication에서 UIRemoteNotificationType을 얻습니다. 설정 에서이 앱의 푸시 알림 상태를 나타내며 유형을 쉽게 확인할 수 있습니다


3
이 코드의 기능을 설명하십시오. 코드 작성은 단순히 질문에 대한 답변이 아닙니다.
Batty

4

@Shaheen Ghiassy가 제공하는 솔루션을 사용하여 iOS 10 이상을 지원하려고하지만 박탈 문제를 찾습니다 enabledRemoteNotificationTypes. 따라서 iOS 8에서 더 이상 사용되지 않는 isRegisteredForRemoteNotifications대신 사용하여 찾은 솔루션 enabledRemoteNotificationTypes은 다음과 같습니다.

- (BOOL)notificationServicesEnabled {
    BOOL isEnabled = NO;
    if ([[UIApplication sharedApplication] respondsToSelector:@selector(currentUserNotificationSettings)]){
        UIUserNotificationSettings *notificationSettings = [[UIApplication sharedApplication] currentUserNotificationSettings];

        if (!notificationSettings || (notificationSettings.types == UIUserNotificationTypeNone)) {
            isEnabled = NO;
        } else {
            isEnabled = YES;
        }
    } else {

        if ([[UIApplication sharedApplication] isRegisteredForRemoteNotifications]) {
            isEnabled = YES;
        } else{
            isEnabled = NO;
        }
    }
    return isEnabled;
}

그리고 우리는이 함수를 쉽게 호출하고 그 Bool값에 접근하여 다음 과 같이 문자열 값으로 변환 할 수 있습니다 :

NSString *str = [self notificationServicesEnabled] ? @"YES" : @"NO";

그것이 다른 사람들에게도 도움이되기를 바랍니다 :) 행복한 코딩.


3

Zac의 대답은 iOS 7까지 완벽하게 맞았지만 iOS 8이 도착한 이후로 바뀌 었습니다. 때문에 enabledRemoteNotificationTypes은 이후 아이폰 OS 8에서 더 이상 사용되지 않습니다. iOS 8 이상의 경우 isRegisteredForRemoteNotifications 를 사용해야 합니다 .

  • iOS 7 이하-> enabledRemoteNotificationTypes 사용
  • iOS 8 이상-> isRegisteredForRemoteNotifications 사용.

2

Swifty 솔루션은 저에게 효과적이었습니다 ( iOS8 + ).

방법 :

func isNotificationEnabled(completion:@escaping (_ enabled:Bool)->()){
    if #available(iOS 10.0, *) {
        UNUserNotificationCenter.current().getNotificationSettings(completionHandler: { (settings: UNNotificationSettings) in
            let status =  (settings.authorizationStatus == .authorized)
            completion(status)
        })
    } else {
        if let status = UIApplication.shared.currentUserNotificationSettings?.types{
            let status = status.rawValue != UIUserNotificationType(rawValue: 0).rawValue
            completion(status)
        }else{
            completion(false)
        }
    }
}

사용법 :

isNotificationEnabled { (isEnabled) in
            if isEnabled{
                print("Push notification enabled")
            }else{
                print("Push notification not enabled")
            }
        }

심판


0

레:

이것은 맞다

if (types & UIRemoteNotificationTypeAlert)

그러나 다음도 정확합니다! (UIRemoteNotificationTypeNone이 0이므로)

if (types == UIRemoteNotificationTypeNone) 

다음을 참조하십시오

NSLog(@"log:%d",0 & 0); ///false
NSLog(@"log:%d",1 & 1); ///true
NSLog(@"log:%d",1<<1 & 1<<1); ///true
NSLog(@"log:%d",1<<2 & 1<<2); ///true
NSLog(@"log:%d",(0 & 0) && YES); ///false
NSLog(@"log:%d",(1 & 1) && YES); ///true
NSLog(@"log:%d",(1<<1 & 1<<1) && YES); ///true
NSLog(@"log:%d",(1<<2 & 1<<2) && YES); ///true

0

Xamarin.ios에서이를 수행하는 방법은 다음과 같습니다.

public class NotificationUtils
{
    public static bool AreNotificationsEnabled ()
    {
        var settings = UIApplication.SharedApplication.CurrentUserNotificationSettings;
        var types = settings.Types;
        return types != UIUserNotificationType.None;
    }
}

iOS 10 이상을 지원하는 경우 UNUserNotificationCenter 방법으로 만 이동하십시오.


0

Xamarin에서는 위의 모든 솔루션이 작동하지 않습니다. 이것이 내가 대신 사용하는 것입니다.

public static bool IsRemoteNotificationsEnabled() {
    return UIApplication.SharedApplication.CurrentUserNotificationSettings.Types != UIUserNotificationType.None;
}

설정에서 알림 상태를 변경 한 후에도 실시간으로 업데이트됩니다.


-1

@ZacBowling의 솔루션으로 작성된 완전 쉬운 복사 및 붙여 넣기 코드 ( https://stackoverflow.com/a/1535427/2298002 )

또한 사용자를 앱 설정으로 가져 와서 즉시 활성화 할 수 있습니다.

또한 위치 서비스가 활성화되어 있는지 확인하는 솔루션을 추가했으며 설정도 제공합니다.

// check if notification service is enabled
+ (void)checkNotificationServicesEnabled
{
    if (![[UIApplication sharedApplication] isRegisteredForRemoteNotifications])
    {
        UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"Notification Services Disabled!"
                                                            message:@"Yo don't mess around bro! Enabling your Notifications allows you to receive important updates"
                                                           delegate:self
                                                  cancelButtonTitle:@"Cancel"
                                                  otherButtonTitles:@"Settings", nil];

        alertView.tag = 300;

        [alertView show];

        return;
    }
}

// check if location service is enabled (ref: https://stackoverflow.com/a/35982887/2298002)
+ (void)checkLocationServicesEnabled
{
    //Checking authorization status
    if (![CLLocationManager locationServicesEnabled] || [CLLocationManager authorizationStatus] == kCLAuthorizationStatusDenied)
    {

        UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"Location Services Disabled!"
                                                            message:@"You need to enable your GPS location right now!!"
                                                           delegate:self
                                                  cancelButtonTitle:@"Cancel"
                                                  otherButtonTitles:@"Settings", nil];

        //TODO if user has not given permission to device
        if (![CLLocationManager locationServicesEnabled])
        {
            alertView.tag = 100;
        }
        //TODO if user has not given permission to particular app
        else
        {
            alertView.tag = 200;
        }

        [alertView show];

        return;
    }
}

// handle bringing user to settings for each
+ (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{

    if(buttonIndex == 0)// Cancel button pressed
    {
        //TODO for cancel
    }
    else if(buttonIndex == 1)// Settings button pressed.
    {
        if (alertView.tag == 100)
        {
            //This will open ios devices location settings
            [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"prefs:root=LOCATION_SERVICES"]];
        }
        else if (alertView.tag == 200)
        {
            //This will open particular app location settings
            [[UIApplication sharedApplication] openURL:[NSURL URLWithString:UIApplicationOpenSettingsURLString]];
        }
        else if (alertView.tag == 300)
        {
            //This will open particular app location settings
            [[UIApplication sharedApplication] openURL:[NSURL URLWithString:UIApplicationOpenSettingsURLString]];
        }
    }
}

GLHF!

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.