zoukankan      html  css  js  c++  java
  • 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:某台电脑就能发布某个程序
  • 相关阅读:
    HTB-靶机-Charon
    第一篇Active Directory疑难解答概述(1)
    Outlook Web App 客户端超时设置
    【Troubleshooting Case】Exchange Server 组件状态应用排错?
    【Troubleshooting Case】Unable to delete Exchange database?
    Exchange Server 2007的即将生命周期,您的计划是?
    "the hypervisor is not running" 故障
    Exchange 2016 体系结构
    USB PE
    10 months then free? 10个月,然后自由
  • 原文地址:https://www.cnblogs.com/s-y-j/p/5983368.html
Copyright © 2011-2022 走看看