zoukankan      html  css  js  c++  java
  • iOS应用内跳转系统推送设置页

    #pragma mark - 是否开启APP推送
    /**是否开启推送*/
    - (BOOL)isSwitchAppNotification {
        if ([UIDevice currentDevice].systemVersion.doubleValue >= 10.0) {
            __block BOOL result = NO;
            //异步线程中操作是否完成
            __block BOOL inThreadOperationComplete = NO;
            [[UNUserNotificationCenter currentNotificationCenter] getNotificationSettingsWithCompletionHandler:^(UNNotificationSettings * _Nonnull settings) {
                if (settings.authorizationStatus == UNAuthorizationStatusDenied) {
                    result = NO;
                }else if (settings.authorizationStatus == UNAuthorizationStatusNotDetermined) {
                    result = NO;
                }else if (settings.authorizationStatus == UNAuthorizationStatusAuthorized) {
                    result = YES;
                }else {
                    result = NO;
                }
                inThreadOperationComplete = YES;
            }];
            
            while (!inThreadOperationComplete) {
                [NSThread sleepForTimeInterval:0];
            }
            return result;
        }
    #pragma clang diagnostic push
    #pragma clang diagnostic ignored "-Wdeprecated-declarations"
        else if ([UIDevice currentDevice].systemVersion.doubleValue >= 8.0)
        {
            UIUserNotificationSettings *setting = [[UIApplication sharedApplication] currentUserNotificationSettings];
            if (UIUserNotificationTypeNone != setting.types) {
                return YES;
            }else {
                return NO;
            }
            
        }else
        {
            UIRemoteNotificationType type = [[UIApplication sharedApplication] enabledRemoteNotificationTypes];
            if(UIRemoteNotificationTypeNone != type) {
                return YES;
            }else {
                return NO;
            }
        }
    }
    /// 进入前台监听
    
    - (void)viewDidLoad {
        [super viewDidLoad];
        // Do any additional setup after loading the view.
        
        self.navigationItem.title = @"通知管理";
        [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(appBecomeActive:) name:UIApplicationDidBecomeActiveNotification object:nil];
        [self setupMainUI];
        self.swt.on = [self isSwitchAppNotification];
    }
    
    
    #pragma mark - NSNotification
    - (void)appBecomeActive:(NSNotification *)note {
        self.swt.on = [self isSwitchAppNotification];
    }

    参考

    https://www.jianshu.com/p/16d2cdefb9cd

  • 相关阅读:
    js 数组扁平
    leetcode 15 三数之和
    leetcode 1 两数之和
    编写一个自定义事件类,包含on/off/emit/once方法
    css常见双栏和三栏布局
    关于js中this指向的问题
    函数防抖和节流
    ie6 js报错汇总
    windows PHP配置随笔
    上传文件表单file,限制上传文件类型的方法--参数accept
  • 原文地址:https://www.cnblogs.com/qingzZ/p/15309102.html
Copyright © 2011-2022 走看看