• iOS--推送


    推送介绍###

    1.分类

    • 本地推送通知
    • 远程推送通知

    2.推送呈现效果

    • 屏幕顶部出现一块横幅(显示推送内容)
    • 屏幕中部出现一块UIAlertView(显示推送内容)
    • 锁屏界面显示横幅(锁屏状态下,显示推送内容)
    • 播放音效(提醒用户)
    • 更新APP图标的数字(显示有几条推送内容)

    3.使用注意

    • 应用程序正在前台运行时,发送的推送通知不会显示出来
    • 点击通知会打开对应的APP
    • 应用打开或者关闭,不影响推送的正常发出

    本地推送通知###

    步骤####

    创建本地通知对象-->设置属性-->调度本地通知-->注册通知权限-->删除通知(如果设置了repeatInterval属性,需要删除通知)
    

    代码####

    //创建本地通知
    UILocalNotification *localNotification = [[UILocalNotification alloc] init];
    
    //设置通知发出的时间
    localNotification.fireDate = [NSDate dateWithTimeIntervalSinceNow:4];
    //设置通知的内容
    localNotification.alertBody = @"你好,上课了";
    //设置锁屏模式下滑块的文字
    localNotification.alertAction = @"本地提醒";
    //滑块上的文字显示是否生效
    localNotification.hasAction = NO;
    //点击通知后会触发加载图
    localNotification.alertLaunchImage = @"加载图";
    //设置alertTitle,在通知中心显示的标题
    localNotification.alertTitle = @"didadida";
    //设置通知发来的音效,用文件音效
    localNotification.soundName = @"system.wav";
    //设置应用程序icon右上角的数字
    localNotification.applicationIconBadgeNumber = 10;
    //设置重复提醒的间隔
    //    localNotification.repeatInterval = NSCalendarUnitMinute;
    //设置通知的其它信息,可以用来判断不同的通知,做不同的操作
    localNotification.userInfo = @{@"type":@"name1"};
    
    //调度本地通知
    [[UIApplication sharedApplication] scheduleLocalNotification:localNotification];
    

    AppDelegate中代码

    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    
    	//程序进来让提醒的数字消失
    	application.applicationIconBadgeNumber = 0;
    
    	//ios8.0后需要设置一下通知的类型
    	if([[[UIDevice currentDevice] systemVersion] doubleValue] >= 8.0)
    	{
        	UIUserNotificationSettings *setting = [UIUserNotificationSettings settingsForTypes:UIUserNotificationTypeBadge | UIUserNotificationTypeSound | UIUserNotificationTypeAlert categories:nil];
        	[application registerUserNotificationSettings:setting];
    	}
    
    	//界面的跳转(针对应用程序被杀死的状态下的跳转)
    	if(launchOptions[UIApplicationLaunchOptionsLocalNotificationKey])
    	{
        	//此处添加跳转代码
    	}
    
    	return YES;
    }
    
    //应用程序在进入前台,或者在前台的时候当收到通知时都会执行该方法
    -(void)application:(UIApplication *)application didReceiveLocalNotification:(nonnull UILocalNotification *)notification
    {
    	if(application.applicationState == UIApplicationStateInactive)
    	{
        	//程序进来让提醒的数字消失
        	application.applicationIconBadgeNumber = 0;
        
        	//可以在这里进行界面的跳转操作
    	}
    }
    

    远程推送通知###

    知识点了解####

    • APNS(Apple Push Notification Services)苹果推送服务器
    • 不管用户打开还是关闭APP,只要联网,都能接收到服务器推送的远程通知
    • 所有的苹果设备,在联网状态下,都会与苹果的服务器建立长连接(数据传输速度快,数据保持最新状态)

    远程推送原理图####

    开发到发布具有推送功能的APP的流程####

    1.开发iOS程序的推送功能,iOS端需要做的事:

    请求苹果获得deviceToken
    得到苹果返回的deviceToken
    发送deviceToken给公司的服务器
    监听用户对通知的点击
    

    2.调试iOS的远程服务功能,必备条件:

    真机
    调试推送需要的证书文件:
    	1.aps_development.cer:某台电脑就能调试某个APP的推送服务
    	2.iphone5_qq.mobileprovision:某台电脑就能利用某台设备调试某个程序
    

    3.发布具有推送服务的APP

    aps_production.cer:如果发布的程序中包含了推送服务,就必须安装这个证书
    qq.mobileprovision:某台电脑就能发布某个程序
  • 相关阅读:
    Vue
    Vue
    Vue
    服务器上部署django项目流程?
    Git 命令
    git命令?
    消息队列中间件??
    简述COOKIE和SESSION的区别与联系?
    什么是restful API?
    Django、Flask、Tornado的区别?
  • 原文地址:https://www.cnblogs.com/s-y-j/p/5983368.html
Copyright © 2020-2023  润新知