1.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:UIRemoteNotificationTypeAlert|UIRemoteNotificationTypeBadge|UIRemoteNotificationTypeSound];
}
certificates中,apns 证书和普通证书的区别:
apns证书:
apns证书是用来生成p12与苹果apns服务器通信用的,
在appid中开启apns后上传CertificateSigningRequest.certSigningRequest后就会在certificates中生成对应的apns证书,在certificates中删除,同样会在appid中删除该apns证书。
并且该证书不会在provisioning profile中显示。
普通证书:如在certificates中的IOS Developer
在生成provisioning profile签名时可选择。
Provisioning Profile
在xcode上运行程序到真机需要使用改签名。
一个Provisioning Profile文件包含了上述的所有内容:证书、App ID、设备。
2.检测用户是否允许通知,允许哪种类型的通知
//ios7
[UIApplication sharedApplication].enabledRemoteNotificationTypes
// ios8以上
UIUserNotificationSettings *setting = [UIApplication sharedApplication].currentUserNotificationSettings;
if (setting.types == UIUserNotificationTypeNone ) {
NSLog(@"UIUserNotificationTypeNone");
}
if (setting.types & UIUserNotificationTypeAlert ) {
NSLog(@"UIUserNotificationTypeAlert");
}
if (setting.types & UIUserNotificationTypeSound ) {
NSLog(@"UIUserNotificationTypeSound");
}
if (setting.types & UIUserNotificationTypeBadge ) {
NSLog(@"UIUserNotificationTypeBadge");
}