1、首先在工程设置开启通知权限(Push Notifications开关打开)

2、注册通知权限,在此步骤会弹出用户授权提示

#import <UserNotifications/UserNotifications.h>

if ([[UIDevice currentDevice].systemVersion floatValue] >= 10.0){if (@available(iOS 10.0, *)) {UNUserNotificationCenter *center = [UNUserNotificationCenter currentNotificationCenter];__weak typeof(self) weakSelf = self;[center requestAuthorizationWithOptions:(UNAuthorizationOptionAlert | UNAuthorizationOptionBadge | UNAuthorizationOptionSound) completionHandler:^(BOOL granted, NSError * _Nullable error) {if (granted) {[center getNotificationSettingsWithCompletionHandler:^(UNNotificationSettings * _Nonnull settings) {if (settings.authorizationStatus == UNAuthorizationStatusAuthorized){dispatch_async(dispatch_get_main_queue(), ^{[[UIApplication sharedApplication] registerForRemoteNotifications];});}}];}}];}} else if ([[UIDevice currentDevice].systemVersion floatValue] >= 8.0){if (@available(iOS 8.0, *)) {if ([[UIApplication sharedApplication] respondsToSelector:@selector(registerUserNotificationSettings:)]) {UIUserNotificationSettings* notificationSettings = [UIUserNotificationSettings settingsForTypes:UIUserNotificationTypeAlert | UIUserNotificationTypeBadge | UIUserNotificationTypeSound categories:nil];[[UIApplication sharedApplication] registerUserNotificationSettings:notificationSettings];[[UIApplication sharedApplication] registerForRemoteNotifications];} else {[[UIApplication sharedApplication] registerForRemoteNotificationTypes: (UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeSound | UIRemoteNotificationTypeAlert)];}}}

注意iOS8.0和iOS10.0之后需要用不同的方法

3、获取到远程推送的token值

在Appdelegate类中重写下面的方法

- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken
{NSString *token = [NSString stringWithFormat:@"%@",deviceToken];token = [token stringByReplacingOccurrencesOfString:@"<" withString:@""];token = [token stringByReplacingOccurrencesOfString:@">" withString:@""];token = [token stringByReplacingOccurrencesOfString:@" " withString:@""];
}

获取到token值之后妥善保存,并传给服务器,服务器根据token值就可以通过APNS给app发送远程推送通知了啦。

转载于:https://www.cnblogs.com/hecanlin/p/10898783.html

iOS开发之注册推送通知权限相关推荐

  1. IOS开发之----远程推送通知

    原文地址:IOS开发之----远程推送通知作者:倒計時 玩了一年的iPhone了各种App的远程通知接收了不少,每次接收到的时候,就在反思,这丫的怎么实现的! 由于工作方面一直没有接触的机会,所以只好 ...

  2. (转)iOS开发资源:推送通知相关开源项目--PushSharp、APNS-PHP以及Pyapns等

    PushSharp  (github) PushSharp是一个实现了由服务器端向移动客户端推送消息的开源C#库,支持 iOS (iPhone/iPad APNS). Android (C2DM/GC ...

  3. iOS开发实用技术之推送-应用间跳转-社交分享

    实用补充 --- 一. 推送通知 1. 什么是推送通知? > 首先明确:**此处的推送通知跟我们的"NSNotification"没有半毛钱关系> 可以理解为: 向用户 ...

  4. iOS学习笔记22 推送通知

    ###一.推送通知 推送通知就是向用户推送一条信息来通知用户某件事件,可以在应用退到后台后,或者关闭后,能够通过推送一条消息通知用户某件事情,比如版本更新等等. ######推送通知的常用应用场景: ...

  5. iOS开发之消息推送 —— 远程消息推送入门

    每次看到iOS的远程消息推送,总是感觉很头大,即便后来项目都做完了,还是觉得摸不着远程推送的脉门,网上介绍的资料虽多,但不是写的太简单了,就是写的太详细了,不能一下抓住要点,今天终于能够抽出点时间,来 ...

  6. ios开发: APNS消息推送实现

    网上关于ios消息推送机制(APNS)的实现.原理介绍很多,但都零零散散. 昨天经过自己的多番尝试,终于成功实现了推送过程. 在此,贴上自己整理的印象笔记内容,包括自己实现过程中受益的内容链接,和遇到 ...

  7. iOS开发之极光推送JPush

    JPush介绍 JPush可以轻松地通过极光推送完成运营推送工作同时支持自定义消息.富媒体消息.应用内提醒消息.短视频消息和围栏消息等9种类型,满足开发者在各类应用场景下运营所需9种消息类型. 配置i ...

  8. ios开发有关远程推送的测试版和正式发布版的区别

    http://zhidao.baidu.com/link?url=q9iGl_8LbLXNsRWAGWTYHSeT6BzK0jibwnl0siNGLl4GS0DAn5CV6aJR3lBCgEz_FY7 ...

  9. iOS 推送通知及推送扩展

    概述 iOS中的通知包括本地推送通知和远程推送通知,两者在iOS系统中都可以通过弹出横幅的形式来提醒用户,点击横幅会打开应用.在iOS 10及之后版本的系统中,还支持通知扩展功能(UNNotifica ...

最新文章

  1. 如何快速设计元器件原理图库和PCB封装库?
  2. ios Carthage
  3. 免费教材丨第56期:《深度学习导论及案例分析》、《谷歌黑板报-数学之美》
  4. 综述:Image Caption 任务之语句多样性
  5. lightoj 1004 dp:数字三角形
  6. Duilib实现圆形头像控件
  7. elasticSearch 安装和 head插件使用
  8. 高级java知识结构图,Spring高级框架课程笔记 PDF 下载
  9. Async Await
  10. 《C++ Primer Plus(第六版)》(25)(第十三章 类继承 笔记)
  11. linux6同步时间,centos 6.x 同步网络时间
  12. mysql服务等待应答超时_从mysql备份报错来看net_read_timeout 和net_write_timeout参数
  13. vant表单组件+iconfont组合使用 - 代码篇
  14. 数仓是如何与“夏令时”愉快的玩耍?
  15. java 类加载器_Java 类加载器
  16. RHEL 8 - 用podman compose替代docker compose运行Ansible Tower
  17. 【深度优先搜索】计蒜客:正方形
  18. WIN8 RP版频繁死机
  19. 联想计算机启天m6900价格,联想启天m6900内存及基本【参数介绍】
  20. 适合自己的贵金属白银今日走势分析是最好的

热门文章

  1. python zip函数_Python zip()函数
  2. java 函数式编程 示例_Java套接字编程–套接字服务器,客户端示例
  3. java i18n_Java i18n – Java的国际化
  4. jquery 查找祖先元素_如何获得jQuery中元素的第一个祖先
  5. Java数组– java.util.Arrays
  6. 连通性问题--Algorithms IN C读书笔记
  7. 开课吧:常见的数据可视化分析工具有哪些?
  8. Java基础篇:隐藏的实例变量
  9. 封装自己的LINUX光盘
  10. 小麦积分墙:我的App与微信搞上了