IOS [推送相关] 在app 内获取系统设置页的通知开关状态,然后使app 和system 开关保持一致 【此功能只适用月IOS8 +】

原创 2015年07月10日 23:53:39

关键代码

UIUserNotificationSettings *userNotificationSetting = [[UIApplication sharedApplication] currentUserNotificationSettings];
                   if( userNotificationSetting.types == UIUserNotificationTypeNone )

               {

                        //表示系统当前的通知开关是打开的

              }

详细代码示范:

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
                [[UIApplication sharedApplication] openURL:[NSURL URLWithString:UIApplicationOpenSettingsURLString]];
                if(swh.isOn){//推送开关是打开的,注册远程通知
                    cactusAppDelegate *delegateCactus=(cactusAppDelegate *)[UIApplication sharedApplication].delegate;
                    [delegateCactus registerAPNSDirect];
                    [[NSUserDefaults standardUserDefaults] setInteger:EnablePush forKey:ifPush];
                    [[NSUserDefaults standardUserDefaults] synchronize];
                    [ISStat probePushSetting:@"pushon"];
                }
                else{
                    cactusAppDelegate *delegateCactus=(cactusAppDelegate *)[UIApplication sharedApplication].delegate;
                    [delegateCactus removeRemoteNotification];
                    [[NSUserDefaults standardUserDefaults] setInteger:DisenablePush forKey:ifPush];

                }
                dispatch_async(dispatch_get_main_queue(), ^{
                    UIUserNotificationSettings *userNotificationSetting = [[UIApplication sharedApplication] currentUserNotificationSettings];
                    userNotificationSetting.types == UIUserNotificationTypeNone ?[swh setOn:NO animated:YES]:[swh setOn:YES animated:YES];

                    [self.tableView reloadData];
                    });
            });


相关文章推荐

iOS应用内跳转到系统设置推送开关

跳转自己的项目的设置项 NSURL * url = [NSURL URLWithString:UIApplicationOpenSettingsURLString];     if(...

iOS开发之判断用户是否打开APP通知开关,看我就够了。

1.最近在做app内部的推送开关功能。 这样顾客可以自己定义推送给他的内容,屏蔽不想要的一些烦人推送。  在开发过程中, 如果顾客打开推送开关的时候,也已经向服务器发送指令,进行推送开关同步,给它...

iOS技术点:判断用户是否开启推送开关/是否允许推送?

iOS7,iOS8下如何判断用户是否开启推送
  • wxs0124
  • wxs0124
  • 2015年06月16日 16:47
  • 4295

判断iOS设备的PUSH通知设置状态(打开。。。/关闭)

typedef NS_OPTIONS(NSUInteger, UIRemoteNotificationType) { UIRemoteNotificationTypeNone = 0, ...

iOS判断消息推送开关

判断消息推送开关:

IOS学习笔记11-如何判断推送开关是否打开

最近做项目有一个需求,要在程序得系统设置里进行push的设置。在网上搜了几天资料没找着啥。今天忽然心血来潮跟踪系统注册push时得代码,居然发现有可行得解决方法,思路如下: 1、在iphone得...

iOS怎么判断用户是否打开了系统设置里面推送通知的开关?

//ios7系统      //不能接收推送,不为0时可以接收推送,是个枚举型        [[UIApplicationsharedApplication] enabledRemot...

实现iOS应用PUSH功能

1. push原理 iOS push 工作机制可以用下图简要概括 Provider:应用自己的服务器;APNS:Apple Push Notification Service的简称,苹果的...

ios app推送通知详细教程一

可以参考的文章:http://blog.csdn.net/showhilllee/article/details/8631734

iOS AppDelegate 代理详解(启动,打开App,推送,通知)

//App将要启动 - (BOOL)application:(UIApplication *)application willFinishLaunchingWithOptions:(nullable ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:IOS [推送相关] 在app 内获取系统设置页的通知开关状态,然后使app 和system 开关保持一致 【此功能只适用月IOS8 +】
举报原因:
原因补充:

(最多只允许输入30个字)