iOS8 PUSH解决方法
来源:互联网 发布:经淘宝排查认定你实际 编辑:程序博客网 时间:2024/06/05 08:50
- (void)registerForRemoteNotificationTypes:(UIRemoteNotificationType)types NS_DEPRECATED_IOS(3_0, 8_0, "Please use registerForRemoteNotifications and registerUserNotificationSettings: instead")
昨天晚上整理PUSH的东西,准备些一个教程,全部弄好之后,发现没有达到预期的效果,本以为是服务器代码的问题(因为本人对PHP代码一点都不懂),所以在网上四处搜索,后来看xcode log才发现,原来是IOS8系统更新了的问题,提示 registerForRemoteNotificationTypes: is not supported in iOS 8.0 and later.
使用IOS8 xcode6的同学,在使用推送(push)的时候应该已经出现这个问题了。那么让我们来看看具体的解决方法。
iOS 8 has changed notification registration in a non-backwards compatible way. While you need to support iOS 7 and 8 (and while apps built with the 8 SDK aren't accepted), you can check for the selectors you need and conditionally call them correctly for the running version.
Here's a category on UIApplication that will hide this logic behind a clean interface for you that will work in both Xcode 5 and Xcode 6.
// IOS8 新系统需要使用新的代码咯
if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 8.0)
{
[[UIApplication sharedApplication] registerUserNotificationSettings:[UIUserNotificationSettings
settingsForTypes:(UIUserNotificationTypeSound | UIUserNotificationTypeAlert | UIUserNotificationTypeBadge)
categories:nil]];
[[UIApplication sharedApplication] registerForRemoteNotifications];
}
else
{
//这里还是原来的代码
[[UIApplication sharedApplication] registerForRemoteNotificationTypes:
(UIUserNotificationTypeBadge | UIUserNotificationTypeSound | UIUserNotificationTypeAlert)];
}
原本在IOS7当中 判断PUSH是否打开的方法是:
UIRemoteNotificationType types = [[UIApplication sharedApplication] enabledRemoteNotificationTypes];
return (types & UIRemoteNotificationTypeAlert);
如果将这段代码使用在 IOS当中,虽然不会出现crash的现象,但是基本没什么作用。
在IOS8中,我们使用如下的新代码来取代以上的代码
{
UIRemoteNotificationType types;
if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 8.0)
{
types = [[UIApplication sharedApplication] currentUserNotificationSettings].types;
}
else
{
types = [[UIApplication sharedApplication] enabledRemoteNotificationTypes];
}
return (types & UIRemoteNotificationTypeAlert);
}
每当苹果更新一个新的版本的时候,最痛苦的莫过于我们这群屌丝啊
加油码农!
本文转自 http://www.999dh.net/home.php?mod=space&uid=1&do=blog&quickforward=1&id=419 转载请注明!!
0 0
- iOS8 PUSH解决方法
- iOS8 PUSH解决方法
- iOS8 PUSH解决方法
- iOS8 PUSH解决方法
- iOS8 PUSH解决方法
- iOS8 Push Notifications
- iOS8 Push Notifications
- iOS8注册通知 push、notification
- iOS8注册通知 push、notification
- ios8新特性 push kit
- iOS8 定位崩溃解决方法
- iOS8下注册push方式变更
- ios8 push无缝隐藏navibar和statusbar
- git下push失败解决方法
- git下push失败解决方法
- git下push失败解决方法
- git push 失败与解决方法
- iOS8 UIDatePicker 键盘没有弹出的解决方法
- 工厂三兄弟之简单工厂模式(四)
- Effective MySQL之SQL语句最优化--索引
- 关于java项目与javaweb项目
- Lua 作为配置文件(2)
- MySQL EXPLAIN 命令详解学习
- iOS8 PUSH解决方法
- Oracle 数据访问组件 (ODAC) 全称:Oracle Data Access Components
- 程序退到后台在返回,application中的缓存数据被回收,导致程序异常
- nyoj-662 汽水瓶
- 自定义dialog
- 招聘高级软件测试工程师
- 转 Linux多线程通信及同步
- IHttpModule
- android is not translated in 报错解决方案