控制 打开和关闭远程推送通知

首先初始化一个switch,如下:

我是在cell里面创建的,

然后实现switch的方法:

这里的话,通过判断switch的状态,yes或是no来控制关闭的,因为app首次运行的话,是有一个注册通知的提示框,点击好以后,就可以接受到apns的推送服务了,如果用户点击不允许的话,是不能接收到推送的!切记!

注意这里面的状态判断:1,声明一个bool变量,根据key值取出来,进行关联,注意这样的话,有一个问题,就是switch默认的状态是no,所以如果就直接这样写的话,用户首次运行,apns的服务默认是关闭的,当然这是不合逻辑的,首次肯定是yes,默认打开,所以swich得状态也肯定得是打开的;

2,解决方法:在注册推送的时候一个方法,就是注销之后再重新注册的方法:当然了需要加一个判断

我写的是只有状态不是no就让他走这个方法,如图

注意:这三段代码中有2个地方有取反的状态,还有就是在实现switch点击方法的时候需要做的是,在swith取出来状态是yes的时候,让isOneSwitch的状态为no,反之也是,然后在初始化swith的时候,取反,这样的话,就可以实现默认swith是yes,对swith进行操作之后的状态就可以存储!

取消推送通知的方法有2个:

1)[XGPush unRegisterDevice];//注销设备   这个是信鸽官方提供的方法,完美解决问题!

2)[[UIApplication sharedApplication] unregisterForRemoteNotifications];//注销通知  用这个方法,可以达到效果,但是我自己测试的结果是会受到3条信息,一次性,如果有大神指导,请指教!

 

posted @ 2016-02-25 14:48  稻草人11223  阅读(598)  评论(0编辑  收藏  举报
返回顶部