(一)主题:百度推送
(二)详细介绍
百度推送
需要导入的文件如下:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Override point for customization after application launch.
if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 8.0) {
UIUserNotificationType myTypes = UIUserNotificationTypeBadge | UIUserNotificationTypeSound | UIUserNotificationTypeAlert;
UIUserNotificationSettings *settings = [UIUserNotificationSettings settingsForTypes:myTypes categories:nil];
[[UIApplication sharedApplication] registerUserNotificationSettings:settings];
}else {
UIRemoteNotificationType myTypes = UIRemoteNotificationTypeBadge|UIRemoteNotificationTypeAlert|UIRemoteNotificationTypeSound;
[[UIApplication sharedApplication] registerForRemoteNotificationTypes:myTypes];
}
[BPush registerChannel:launchOptions apiKey:@"O2xxg4eI5sWFviWXslxdpTo1" pushMode:BPushModeDevelopment withFirstAction:nil withSecondAction:nil withCategory:nil isDebug:YES];
NSDictionary *userInfo = [launchOptions objectForKey:UIApplicationLaunchOptionsRemoteNotificationKey];
if (userInfo) {
[BPush handleNotification:userInfo];
}
[[UIApplication sharedApplication] setApplicationIconBadgeNumber:0];
return YES;
}
#pragma mark- 百度推送
- (void)application:(UIApplication *)application didRegisterUserNotificationSettings:(UIUserNotificationSettings *)notificationSettings
{
//register to receive notifications
[application registerForRemoteNotifications];
}
- (void)application:(UIApplication *)application didFailToRegisterForRemoteNotificationsWithError:(NSError *)error{
NSLog(@"DeviceToken 获取失败,原因:%@",error);
}
- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken
{
[BPush registerDeviceToken:deviceToken];
[BPush bindChannelWithCompleteHandler:^(id result, NSError *error) {
NSLog(@"getAppId:%@",[BPush getAppId]);
NSLog(@"getChannelId:%@",[BPush getChannelId]);
NSLog(@"getUserId:%@",[BPush getUserId]);
// [BPush setTag:@"Mytag" withCompleteHandler:^(id result, NSError *error) {
//
// if (result) {
//
// NSLog(@"设置tag成功");
// }
// }];
}];
}
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler
{
NSLog(@"********** ios7.0之后边 **********");
completionHandler(UIBackgroundFetchResultNewData);
// if (application.applicationState == UIApplicationStateActive || application.applicationState == UIApplicationStateBackground)
// {
NSString *alert = [[userInfo objectForKey:@"aps"] objectForKey:@"alert"];
NSLog(@"alert = %@",alert);
UIAlertController *alertController = [UIAlertController alertControllerWithTitle:@"系统提示" message:alert preferredStyle:UIAlertControllerStyleAlert];
UIAlertAction *cancelAction = [UIAlertAction actionWithTitle:@"取消" style:UIAlertActionStyleCancel handler:nil];
UIAlertAction *okAction = [UIAlertAction actionWithTitle:@"好的" style:UIAlertActionStyleDefault handler:nil];
[alertController addAction:cancelAction];
[alertController addAction:okAction];
[self.window.rootViewController presentViewController:alertController animated:YES completion:nil];
// }
;
// [[UIApplication sharedApplication] setApplicationIconBadgeNumber:[UIApplication sharedApplication].applicationIconBadgeNumber + 1];
}
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
{
NSLog(@"********** ios7.0之前 **********");
// App 收到推送的通知
[BPush handleNotification:userInfo];
if ( application.applicationState == UIApplicationStateActive)
{
NSString *alert = [[userInfo objectForKey:@"aps"] objectForKey:@"alert"];
NSLog(@"alert = %@",alert);
UIAlertController *alertController = [UIAlertController alertControllerWithTitle:@"系统提示" message:alert preferredStyle:UIAlertControllerStyleAlert];
UIAlertAction *cancelAction = [UIAlertAction actionWithTitle:@"取消" style:UIAlertActionStyleCancel handler:nil];
UIAlertAction *okAction = [UIAlertAction actionWithTitle:@"好的" style:UIAlertActionStyleDefault handler:nil];
[alertController addAction:cancelAction];
[alertController addAction:okAction];
[self.window.rootViewController presentViewController:alertController animated:YES completion:nil];
}
}