推送

iOS推送,看这篇足够了 - Sky109 - 博客园

iOS Push详述,了解一下? - 腾讯WeTest - 博客园


如何进行网络推送

一种是apple自己提供的通知服务(APNS服务器)、一种是用第三方推送

首先在工程中开启了应用并配有推送证书这时候打开app系统弹出询问用户是否允许推送,当用户允许后向苹果服务器(APNS)请求deviceToken,并由苹果服务器发送给自己的应用;自己的应用将DeviceTOken发送自己的服务器;自己服务器想要发送网络推送时将DeviceToken以及想要推送的信息发送给苹果服务器,苹果服务器根据deviceToken将信息发送给对应的客户端


优点:无论设备开启与否,都会发送到手机端。缺点是:消息推送的机制是苹果服务器控制,个别可能会出现推迟。

第三方推送机制,普遍使用Socket机制来实现的,它几乎可以达到及时的发送到目标用户手机端,适用于即时通讯类的应用。优点:他几乎是实时的,主要取决于他心跳包的节奏。缺点:因为ios系统的限制,她不能长时间在后台运行,所以在应用关闭的情况下这种推送机制是不可用的。


4把程序自己关掉和程序进入后台,远程推送的区别


一下来源于:iOS开发 iOS10推送必看 - IOS_Bowen - 博客园

//注册通知  iOS10 iOS8 iOS8以后的不同

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

if ([[UIDevice currentDevice].systemVersion floatValue]>=10.0) {        UNUserNotificationCenter *center = [UNUserNotificationCenter currentNotificationCenter];       

center.delegate = self;       

[center requestAuthorizationWithOptions:(UNAuthorizationOptionAlert|UNAuthorizationOptionBadge|UNAuthorizationOptionSound) completionHandler:^(BOOL granted, NSError * _Nullable error) {           

if (granted) {               

NSLog(@"注册成功");               

[center getNotificationSettingsWithCompletionHandler:^(UNNotificationSettings * _Nonnull settings) {                    

NSLog(@"%@",settings);               

}];           

}else{               

NSLog(@"注ceshibai");           

}        }];                 

  }else if ([[UIDevice currentDevice].systemVersion floatValue]>8.0 ){        [application registerUserNotificationSettings:[UIUserNotificationSettings settingsForTypes:UIUserNotificationTypeAlert|UIUserNotificationTypeBadge|UIUserNotificationTypeSound categories:nil]];   

}else if ([UIDevice currentDevice].systemVersion.floatValue<8.0){     

 [application registerForRemoteNotificationTypes:UIRemoteNotificationTypeAlert|UIRemoteNotificationTypeBadge|UIRemoteNotificationTypeSound];   

}      

// Override point for customization after application launch.   

return YES;}


你可能感兴趣的:(推送)