iOS10实现推送功能时的注意点和问题总结_IOS

1、在项目 target 中,打开Capabilitie —> Push Notifications,并会自动在项目中生成 .entitlement 文件。(很多同学升级后,获取不到 deviceToken,大概率是由于没开这个选项)


Capabilitie —> Push Notifications


自动生成 .entitlement

2、确保添加了 UserNotifications.framework,并 importAppDelegate,记得实现 UNUserNotificationCenterDelegate

#import <UserNotifications/UserNotifications.h>

@interface AppDelegate : UIResponder <UIApplicationDelegate,UNUserNotificationCenterDelegate>
@end

3、在 didFinishLaunchingWithOptions 方法中,首先实现 UNUserNotificationCenter delegate,并使用 UIUserNotificationSettings 请求权限。

//注意,关于 iOS10 系统版本的判断,可以用下面这个宏来判断。不能再用截取字符的方法。
#define SYSTEM_VERSION_GRATERTHAN_OR_EQUALTO(v) ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] != NSOrderedAscending)

-(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{

if(SYSTEM_VERSION_GRATERTHAN_OR_EQUALTO(@"10.0")){
 UNUserNotificationCenter *center = [UNUserNotificationCenter currentNotificationCenter];
 center.delegate = self;
 [center requestAuthorizationWithOptions:(UNAuthorizationOptionSound | UNAuthorizationOptionAlert | UNAuthorizationOptionBadge) completionHandler:^(BOOL granted, NSError * _Nullable error){
  if( !error ){
  [[UIApplication sharedApplication] registerForRemoteNotifications];
  }
 }];
}

return YES;
}

4、最后实现以下两个回调。

//====================For iOS 10====================

-(void)userNotificationCenter:(UNUserNotificationCenter *)center willPresentNotification:(UNNotification *)notification withCompletionHandler:(void (^)(UNNotificationPresentationOptions options))completionHandler{
NSLog(@"Userinfo %@",notification.request.content.userInfo);

//功能:可设置是否在应用内弹出通知
completionHandler(UNNotificationPresentationOptionAlert);
}

//点击推送消息后回调
-(void)userNotificationCenter:(UNUserNotificationCenter *)center didReceiveNotificationResponse:(UNNotificationResponse *)response withCompletionHandler:(void(^)())completionHandler{
NSLog(@"Userinfo %@",response.notification.request.content.userInfo);
}

注意:需要根据系统版本号来判断是否使用新的 UserNotifications.framework,因此,不要着急删除 iOS 10 以前的代码。

总结

以上就是关于iOS10添加推送功能时的注意点和问题总结,希望这篇文章对大家开发iOS推送功能能有所帮助,如果有疑问大家可以留言交流。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索ios10
, 推送功能
, ios推送功能实现
ios10推送问题
推送功能实现、ios推送功能实现、android推送功能实现、app推送功能实现、微信推送功能实现,以便于您获取更多的相关知识。

时间: 2025-01-20 09:02:04

iOS10实现推送功能时的注意点和问题总结_IOS的相关文章

iOS10全新推送功能实现代码_IOS

从iOS8.0开始推送功能的实现在不断改变,功能也在不断增加,iOS10又出来了一个推送插件的开发(见最后图),废话不多说直接上代码:  #import <UserNotifications/UserNotifications.h> - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // Override point for

IOS设备访问有DWR推送功能的WEB页面时加载速度很慢

问题描述 PC.Android机访问页面时是正常的,但是就是用IPAD.Iphone设备访问那些页面时,加载速度异常的慢大概要等个10-20s左右才会显示.在这之前我具体也网上查了一下相关DWR加载慢的问题,别人加载慢是出现在PC的某些浏览器上.唯一共同点就是加了DWR推送功能的页面都是在IFRAME里面的子页面,但是我PC上的各种浏览器都没出现加载慢的情况.所以我想请教一下各位大神有没有什么好的解决办法呀?顺便说一下我用的DWR是3.0的. 解决方案 解决方案二:可以不可以找到那个地方慢.解决

html5利用websocket完成的推送功能(tomcat)

插播一条消息,5天后会删掉的 本人东北大学软件学院大三学生,现在正在寻找实习,qq:1021842556 利用websocket和java完成的消息推送功能,服务器用的是tomcat7.0,一些东西是自己琢磨的,也不知道恰不恰当,不恰当处,还请各位见谅,并指出. 程序简单来说,就是客户A可以发送消息给客户B,但有很多可以扩展的地方, 比如 1.如果加入数据库后,A发消息时客户B未上线,服务端将会把消息存在数据库中,等客户B上线后,在将消息取出发送给客户B 2.服务端也可发送消息到任意客户端上.

Safari 7.0.3新功能:带来通知推送功能增强

苹果于本周二发布了Mac版Safari浏览器的一个更新,并且为OS X 10.9 Mavericks用户带来了增强的通知推送功能.在Safari 7.0.3中,通知推送迎来了更大的控制权,因为在此前的版本中,它需要对每个网站都进行管理. 在最新的版本中,用户可以简单地取消"允许网站请求发送推送通知的许可"复选框,轻松禁用所有传入尝试.此外,本次更新还修复了一个"或许会阻止收到推送通知"的bug. 其它方面,包括支持.cab和.clothing等新出现的顶级域名(此前

推送segue时ios6崩溃

问题描述 推送segue时ios6崩溃 使用的CalculatorViewController中有一个graph按钮.点击按钮会触发segue推送到CalculaterGraphViewController .运行之后崩溃了. CalculatorViewController.m中的代码: - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { if([segue.identifier isEqualToStr

织梦后台Sitemap+百度Ping推送功能实现

中介交易 SEO诊断 淘宝客 云主机 技术大厅 通过对百度近期的一系列的公告的研究,余斗注意到两个问题,一个是百度Sitemap工具开通第一轮邀请测试,Sitemap工具可以帮助网站改善了收录问题;另一个是Lee谈原创的识别问题时说到的希望中小网站能够通过ping机制ping给百度,这样就可以从时间上进行初步区分原创作者. 而当下最流行的网站后台管理系统非织梦莫属了,不少站长都在群里抱怨说织梦的后台无法自动生成Sitemap,也不支持百度Ping.结合这个情况,余斗稍作改进,修改了下织梦后台,完

在 Asp.NET MVC 中使用 SignalR 实现推送功能

原文http://www.cnblogs.com/kesalin/archive/2012/11/09/signalr_push.html 在 Asp.NET MVC 中使用 SignalR 实现推送功能 罗朝辉 ( http://www.cnblogs.com/kesalin/ ) CC许可,转载请注明出处   一,简介 Signal 是微软支持的一个运行在 Dot NET 平台上的 html websocket 框架.它出现的主要目的是实现服务器主动推送(Push)消息到客户端页面,这样客户

苹果Safari 7.0浏览器新增消息推送功能

&http://www.aliyun.com/zixun/aggregation/37954.html">nbsp;   硅谷网讯 苹果Safari 7.0浏览器新增消息推送功能,类似于iOS系统可在程序不启动的情况下获得push消息, 不过要求Mac系统版本必须升级到在今年6月 苹果 开发者大会上发布的Mavericks. 这一全新的网页消息推送系统,可以实时显示重大新闻事件.体育比分.拍卖预警或是其他信息.而获得这些消息时,Safari 7.0浏览器并不需要长期后台运行. 作为

C#实现百度ping推送功能的方法_C#教程

网站优化必做的事情之一,百度ping,主动推送给百度 文章添加时调用百度推送方法 //保存 protected void btnSubmit_Click(object sender, EventArgs e) { if (action == DTEnums.ActionEnum.Edit.ToString()) //修改 { ChkAdminLevel("channel_" + this.channel_name + "_list", DTEnums.ActionE