文档章节

iOS开发之判断用户是否打开APP通知开关

Youth_关旋
 Youth_关旋
发布于 2016/11/14 09:10
字数 691
阅读 120
收藏 0

行业解决方案、产品招募中!想赚钱就来传!>>>

 

标签: enabledRemoteNotificiOS通知iOS是否开启推送开关currentUserNotificat

 

1.最近在做app内部的推送开关功能。 这样顾客可以自己定义推送给他的内容,屏蔽不想要的一些烦人推送。 

 

在开发过程中, 如果顾客打开推送开关的时候,也已经向服务器发送指令,进行推送开关同步,给它说这个用户已经打开了A推送,现在服务器推送A推送给客户端, 这时候照说,客服端是可以收到通知的,但是客服端却没有收到。 这是为什么呢? 很简单的一个问题,原来是顾客没有在系统通知处打开app的通知开关,所以收不到推送是正常现象。 

 

那现在就产生了一个需求:

       用户在进行设置推送开关的时候,当用户打开推送开关为开的时候,需要去判断 系统通知处的 推送开关用户有没有进行设置?

       网上这样的代码都是一大把,关于怎么去检测系统通知有没有打开,但是,发现运用到程序中,没什么鸟用, 会一直提示说,用户没有打开推送。

下面就到了贴代码的环节了,首先先看下这段代码:

 

 

  1. if ([[UIApplication sharedApplication] enabledRemoteNotificationTypes]  == UIRemoteNotificationTypeNone) { //判断用户是否打开通知开关  
  2.         }  

[objc] view plain copy

 在CODE上查看代码片派生到我的代码片

  1. typedef NS_OPTIONS(NSUInteger, UIRemoteNotificationType) {//这个是用户当前通知的几种状态,第一种就是用户没有开大通知开关  
  2.     UIRemoteNotificationTypeNone    = 0,  
  3.     UIRemoteNotificationTypeBadge   = 1 << 0,  
  4.     UIRemoteNotificationTypeSound   = 1 << 1,  
  5.     UIRemoteNotificationTypeAlert   = 1 << 2,  
  6.     UIRemoteNotificationTypeNewsstandContentAvailability = 1 << 3,  
  7. } NS_ENUM_DEPRECATED_IOS(3_0, 8_0, "Use UIUserNotificationType for user notifications and registerForRemoteNotifications for receiving remote notifications instead.") __TVOS_PROHIBITED;  

 

我在程序中就是用到了这个方法,去进行检测,用户有没有打开推送开关, 却忽视了 

 

  1. NS_ENUM_DEPRECATED_IOS(3_0, 8_0, "Use UIUserNotificationType for user notifications and registerForRemoteNotifications for receiving remote notifications instead.") __TVOS_PROHIBITED  

 


 

通过上面的图,可以看到此方法在iOS8.0就废弃了,虽然说并没有被移除,但是也要用他最新建议的方法去进行版本的兼容,现在加上在iOS9.0上用这个方法进行判断没有任何作用,现在就用新版的判断方法。下面是新版的判断方法。

 

[objc] view plain copy

 在CODE上查看代码片派生到我的代码片

  1. if ([[UIApplication sharedApplication] currentUserNotificationSettings].types  == UIRemoteNotificationTypeNone) {     
  2.        }  

注意: [objc] view plain copy

 在CODE上查看代码片派生到我的代码片

  1. currentUserNotificationSettings 是一个对象,属于UIUserNotificationSettings类  

所以.types切莫忘记。

 

 

总结:

 最完善的做法就是,进行两者兼容 iOS7下的也要兼容, iOS7以上的我更要兼容啦,最完善的做法

  

 

#define IOS8 ([[[UIDevice currentDevice] systemVersion] doubleValue] >=8.0 ? YES : NO)

 

 

  1. if (IOS8) { //iOS8以上包含iOS8  
  2.         if ([[UIApplication sharedApplication] currentUserNotificationSettings].types  == UIRemoteNotificationTypeNone) {  
  3.     }  
  4.  }else{ // ios7 一下      
  5.          if ([[UIApplication sharedApplication] enabledRemoteNotificationTypes]  == UIRemoteNotificationTypeNone) {  
  6.   }  
  7. }  
  8.  
Youth_关旋
粉丝 2
博文 70
码字总数 23376
作品 0
枣庄
私信 提问
加载中
请先登录后再评论。
访问安全控制解决方案

本文是《轻量级 Java Web 框架架构设计》的系列博文。 今天想和大家简单的分享一下,在 Smart 中是如何做到访问安全控制的。也就是说,当没有登录或 Session 过期时所做的操作,会自动退回到...

黄勇
2013/11/03
3.4K
6
Flappy Bird(安卓版)逆向分析(一)

更改每过一关的增长分数 反编译的步骤就不介绍了,我们直接来看反编译得到的文件夹 方法1:在smali目录下,我们看到org/andengine/,可以知晓游戏是由andengine引擎开发的。打开/res/raw/at...

enimey
2014/03/04
5.9K
18
我的架构演化笔记 功能1: 基本的用户注册

“咚咚”,一阵急促的敲门声, 我从睡梦中惊醒,我靠,这才几点,谁这么早, 开门一看,原来我的小表弟放暑假了,来南京玩,顺便说跟我后面学习一个网站是怎么做出来的。 于是有了下面的一段...

强子哥哥
2014/05/31
976
3
Swift百万线程攻破单例(Singleton)模式

一、不安全的单例实现 在上一篇文章我们给出了单例的设计模式,直接给出了线程安全的实现方法。单例的实现有多种方法,如下面: class SwiftSingleton { } 这段代码的实现,在shared中进行条...

一叶博客
2014/06/20
3.3K
16
beego API开发以及自动化文档

beego API开发以及自动化文档 beego1.3版本已经在上个星期发布了,但是还是有很多人不了解如何来进行开发,也是在一步一步的测试中开发,期间QQ群里面很多人都问我如何开发,我的业余时间实在...

astaxie
2014/06/25
2.7W
22

没有更多内容

加载失败,请刷新页面

加载更多

鼠年吉祥,新年快乐

今天是大年初一,很高兴在过去一年中有您的陪伴,希望大家在新的一年中平安健康,一切顺利,加油。 邓飞 202001250539 于后园爷爷家 本文分享自微信公众号 - 育种数据分析之放飞自我(R-bre...

育种数据分析之放飞自
01/25
0
0
不烧脑、不耗时、全免费,带你0基础学Python

文末有福利 Python是人工智能的未来。 最近,电气和电子工程师协会( IEEE)发布了顶级编程语言交互排行榜:Python高居首位。 而且随着大数据和人工智能的发展,Python受到了越来越多程序员的...

kunjian
今天
0
0
R语言入门系列之一

写在前面 计算机语言的学习并不困难,关键是一定要由浅入深的实际操作练习。也许最开始的比较简单,学习者一带而过没有实际操作,之后的进一步学习很可能会陷入不知所云的困境,实际操作所带...

SYSU星空
2019/02/17
0
0
Istio-本地运行

概述 基于上一篇 Istio1.6-二进制编译和本地运行 但集中在 pilot-discovery 和 envoy(pilot-agent 大部分功能仅作为 envoy 的 watchdog,略过) NOTE: 以下的描述,相对路径都基于目录 /g...

深蓝苹果
29分钟前
9
0
基于Linux、C、JSON、Socket的编程实例(附代码)

点击上方「嵌入式大杂烩」,选择「置顶公众号」第一时间阅读编程笔记! 一、前言 之前在学习socket编程的时候有分享一个基于控制台的简易天气客户端的实现,当时提供的是window下的代码,最近...

学以解忧
2019/10/29
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部