《笔记》iOS deviceToken的获取时机及推送相关
2017-12-07 00:27
417 查看
最近几天在做一个新项目,需要用到deviceToken,于是有了以下的问题:
1、 deviceToken是什么时机能获取,即
印象中是在点了弹出通知权限的alert的同意键,然后才开始注册apns,然后回调该方法,获取deviceToken。
但是如此是满足不了当前的需求的,我需要无论允许还是拒绝,都能拿到deviceToken,解决方案为:
勾选Background Modes中的remote notification 和 background fetch,即可达到在注册notificationSettings的时候获取到deviceToken,也就是弹权限请求alert的同时。(注:其实只勾选前者即可)
2、 由上引发思考,上面勾选的两个设置有什么作用?
说来惭愧,这俩都是iOS 7就引入的新特性了。。。。一个是后台应用刷新,一个是静默推送(Silent Remote Notifications),网上关于这俩的资源还是很多的,也没啥可说的,照着文档来就行
3、 为什么勾选(打开)静默推送就可以不经过用户允许,直接拿到deviceToken 呢,那么是不是可以无视用户的通知权限来进行静默推送呢?于是测试了一下,果然如此,在我点击了拒绝之后,仍然能收到静默推送
同时发现,app前台运行时,普通推送也能收到,只是不会展示,猜测后台时也会收到,等回头不忙了,再写个UNNotificationServiceExtension 测试一下
推送作为一个很重要的功能,几乎每次iOS大版本都会有改动,用起来还是谨慎一些为好,多测试一下
1、 deviceToken是什么时机能获取,即
- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken // Tells the delegate that the app successfully registered with Apple Push Notification service (APNs).
印象中是在点了弹出通知权限的alert的同意键,然后才开始注册apns,然后回调该方法,获取deviceToken。
但是如此是满足不了当前的需求的,我需要无论允许还是拒绝,都能拿到deviceToken,解决方案为:
勾选Background Modes中的remote notification 和 background fetch,即可达到在注册notificationSettings的时候获取到deviceToken,也就是弹权限请求alert的同时。(注:其实只勾选前者即可)
2、 由上引发思考,上面勾选的两个设置有什么作用?
说来惭愧,这俩都是iOS 7就引入的新特性了。。。。一个是后台应用刷新,一个是静默推送(Silent Remote Notifications),网上关于这俩的资源还是很多的,也没啥可说的,照着文档来就行
3、 为什么勾选(打开)静默推送就可以不经过用户允许,直接拿到deviceToken 呢,那么是不是可以无视用户的通知权限来进行静默推送呢?于是测试了一下,果然如此,在我点击了拒绝之后,仍然能收到静默推送
同时发现,app前台运行时,普通推送也能收到,只是不会展示,猜测后台时也会收到,等回头不忙了,再写个UNNotificationServiceExtension 测试一下
推送作为一个很重要的功能,几乎每次iOS大版本都会有改动,用起来还是谨慎一些为好,多测试一下
相关文章推荐
- umeng消息推送获取不到DeviceToken解决方案
- 友盟获取devicetoken===nsdata转成nsstring为空问题的解决( IOS为什么获取不到设备的 DeviceToken)
- iOS远程推送h获取Token
- 使用百度云推送ios设备,所有设备可以推送,但单推提示invalid invalid Device Token
- iOS apns Device token的获得 以及是否会改变,解决重复推送
- iOS推送获取不到设备token: 未找到应用程序的“aps-environment”的权利字符串
- NSDate相关处理,获取当前时间戳,获取本地时间,获取星期 iOS新手笔记
- 友盟推送注册失败,无法获取devicetoken,错误码-11,-9
- iOS 获取token笔记
- IOS [推送相关] 在app 内获取系统设置页的通知开关状态,然后使app 和system 开关保持一致 【此功能只适用月IOS8 +】
- iOS友盟抓包看推送用到的device_token
- 制作IOS 后台推送时,如何获取设备Token
- ios远程推送和python版push server相关笔记
- android集成Umeng推送获取不到device_token也收不到消息,但是在Umeng后台可以看到设备的状态
- iOS学习笔记 获取手机信息(UIDevice、NSBundle、NSLocal)
- iOS学习笔记 5 —— 获取当前连接的Wi-fi信息
- iOS学习笔记(十三)——获取手机信息(UIDevice、NSBundle、NSLocale)
- Cordova各个插件使用介绍系列(六)—$cordovaDevice获取设备的相关信息
- 第四章:iOS应用漏洞利用 ——4.3 从日志相关文件获取信息
- iOS学习笔记20—获取当前APP版本