IOS本地,APNS远程推送(具体过程)

本文详细介绍了如何实现iOS的本地和远程推送,包括APNS的使用、证书和设备Token的处理,以及客户端和服务端的配置和代码实现。重点讲解了沙盒测试环境下的推送设置和推送流程。
摘要由CSDN通过智能技术生成

本文主要是教你做推送的


本地推送

添加本地推送

///本地添加
-(void)addLocalPushNotification:(UIButton*)sender;
{
    
    
    NSLog(@"%s",__FUNCTION__);
    UILocalNotification* localNotification=[[UILocalNotification alloc]init];
    
    if (localNotification) {
        //设置时间当前加20秒
        NSDate* pushDate=[NSDate dateWithTimeIntervalSinceNow:20];
        /*推送时区设置:从网上搜到
        timeZone是UILocalNotification激发时间是否根据时区改变而改变,如果设置为nil的话,那么UILocalNotification将在一段时候后被激发,而不是某一个确切时间被激发。*/
        localNotification.timeZone=[NSTimeZone defaultTimeZone];
        ///推送时间设置
        localNotification.fireDate=pushDate;
        //时间间隔,若不设置将只会推送1次
        localNotification.repeatInterval=kCFCalendarUnitDay;
        //推送时的声音,(若不设置的话系统推送时会无声音)
        localNotification.soundName=UILocalNotificationDefaultSoundName;
        //推送的文字信息(若不设置,推送中心中不显示文字,有声音提示前提是设置有声音)
        localNotification.alertBody=@"Hello world";
        //推送时小图标的设置,PS:这个东西不知道还有啥用
        localNotification.alertLaunchImage=[[NSBundle mainBundle]pathForResource:@"3" ofType:@"jpg"];
        
        ///这个东西,到时用于定位是哪个notification,以便取消用
        NSDictionary* infoDic=[NSDictionary dictionaryWithObject:@"name" forKey:@"key"];
        localNotification.userInfo=infoDic;
        
        //讲推送设置以及信息加入
        UIApplication* app=[UIApplication sharedApplication];
        BOOL status=YES;
        for (UILocalNotification* notification in app.scheduledLocalNotifications) {
            if ([notification.userInfo objectForKey:@"key"]) {
                status=NO;
            }
        }
        
        if (status) {
            //加入推送(只能加入一次)
            [app scheduleLocalNotification:localNotification];
        }
        

        
        NSLog(@"%@",app.scheduledLocalNotifications);
    }
}


取消本地推送


///本地移除
-(void)removeLocalPushNotification:(UIButton*)sender
{
    NSLog(@"%s",__FUNCTION__);
    UIApplication* app=[UIApplication sharedApplication];
    //获取当前应用所有的通知
    NSArray* localNotifications=[app scheduledLocalNotifications];

    if (localNotifications) {
        
        for (UILocalNotification* notification in localNotifications) {

            NSDictionary* dic=notification.userInfo;
            
            if (dic) {
                NSString* key=[dic objectForKey:@"key"];
                if ([key isEqualToString:@"name"]) {
                    //取消推送 (指定一个取消)
                    [app cancelLocalNotification:notification];
                    
                    break;
                }
            }

        }
    }
    //取消当前应用所有的推送
    //[app cancelAllLocalNotifications];
    
    
}






远程推送

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值