美文网首页
本地推送以及远程推送

本地推送以及远程推送

作者: 懒惰的习惯 | 来源:发表于2016-01-12 22:55 被阅读204次

1、什么是本地推送?
所谓的本地推送就是app自己给系统推送的一些消息就叫做本地推送。
2、本地推送的基本应用:有设置、取消以及推送后的回调方法

// 注册(设置)本地推送
+ (void)registLocalNotificationWithTime:(NSInteger)time content:(NSString *)content
{
    // 初始化本地通知
    UILocalNotification *localNotify = [[UILocalNotification alloc] init];
    // 设置触发通知的时间
    // dateWithTimeIntervalSinceNow从字面上理解,可以解释为从现在开始多少时间后触发通知
    NSDate *fireDate = [NSDate dateWithTimeIntervalSinceNow:time];
    
    localNotify.fireDate = fireDate;
    // 设置推送的时区
    localNotify.timeZone = [NSTimeZone defaultTimeZone];
    // 设置重复的时间间隔 (在多少时间间隔内再次推送通知)
    localNotify.repeatInterval = kCFCalendarUnitSecond;
    // 设置通知的内容
    localNotify.alertBody = content;
    // app右上角的数字为1,每推送一次,app右上角就+1
//    localNotify.applicationIconBadgeNumber += 1;
    // 设置被触发时播放的声音
    localNotify.soundName = UILocalNotificationDefaultSoundName;
    // 通知参数
    NSDictionary *userDict = @{@"key": @"本地通知,你会了么?"};
    localNotify.userInfo = userDict;
    // iOS8以后需要添加这个(registerUserNotificationSettings)注册才能得到授权
    if ([[UIApplication sharedApplication] respondsToSelector:@selector(registerUserNotificationSettings:)]) {
        UIUserNotificationType type = UIUserNotificationTypeAlert | UIUserNotificationTypeBadge | UIUserNotificationTypeSound;
        UIUserNotificationSettings *setting = [UIUserNotificationSettings settingsForTypes:type categories:nil];
        // 正是在应用中注册通知
        [[UIApplication sharedApplication] registerUserNotificationSettings:setting];
    }
    
    // 执行通知注册
    [[UIApplication sharedApplication] scheduleLocalNotification:localNotify];
}
// 取消本地推送
+ (void)cancelLocalNotificationWithKey:(NSString *)key
{
    NSLog(@"我是来取消通知的");
    // 获取所有本地通知的数组
    NSArray *localNotifications = [UIApplication sharedApplication].scheduledLocalNotifications;
    
    for (UILocalNotification *localNotification in localNotifications) {
        NSDictionary *userInfo = localNotification.userInfo;
        if (userInfo) {
            // 根据设置通知参数时指定的key来获取通知参数
            NSLog(@"%@", userInfo);
            NSString *info = userInfo[key];
            NSLog(@"%@", info);
            // 如果找到需要取消的通知,则取消
            if (info) {
                [[UIApplication sharedApplication] cancelLocalNotification:localNotification];
                NSLog(@"取消一个通知");
                break;
            }
        }
    }
}
// 本地通知的回调方法(在应用的前台调用)
+ (void)handleLocalNotification:(UILocalNotification *)localNotify
{
    // 获取通知所带的数据
    NSString *notMess = [localNotify.userInfo objectForKey:@"key"];
    UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"本地通知(前台)" message:notMess delegate:nil cancelButtonTitle:@"确定" otherButtonTitles:nil];
    [alertView show];
    
    // 更新显示徽章(右上角)的个数
    NSInteger badge = [UIApplication sharedApplication].applicationIconBadgeNumber;
    badge--;
    badge = badge > 0 ? badge : 0;
    [UIApplication sharedApplication].applicationIconBadgeNumber = badge;
}

相关文章

  • 本地推送以及远程推送

    1、什么是本地推送?所谓的本地推送就是app自己给系统推送的一些消息就叫做本地推送。2、本地推送的基本应用:有设置...

  • 本地推送通知、远程推送通知、激光推送

    title : 本地推送通知、远程推送通知、激光推送category : UI 本地推送通知、远程推送通知、激光...

  • 一些项目中可能只需要配置一次的东西吧

    本地推送&远程推送 1.远程推送 推送通知的分类远程推送通知本地推送通知 推送通知作用可以让不在前台运行的App告...

  • iOS本地通知和远程推送

    iOS 本地通知和远程推送 推送通知的应用,可以推送最新的消息给用户,获得更多的关注。推送分为本地推送和远程推送两...

  • 推送(本地推送/远程推送)

    本地推送的步骤: 远程推送的步骤: 1、向苹果服务器发送请求,请求获取deviceToken. 2、得到苹果返回的...

  • 本地推送/远程推送

    需要发送的地方 AppDelegate.swift }

  • ios 本地推送

    目前分为四个推送:用户推送,本地推送,远程推送,地理位置推送。 用户推送 本地推送推荐博客: http://www...

  • ios推送-本地推送

    推送 1、远程推送(Remote Notification) 2、本地推送(Local Notification)...

  • iOS远程推送

    iOS推送分为远程推送 和 本地推送两种,本地推送此文章先不说,之后会有新的文章更新。远程推送将一些重要的信息推送...

  • UI(四十四)本地推送

    *推送: 1、远程推送(Remote Notification) 2、本地推送(local Notificatio...

网友评论

      本文标题:本地推送以及远程推送

      本文链接:https://www.haomeiwen.com/subject/mmafkttx.html