zoukankan      html  css  js  c++  java
  • B5-简析推送通知概念

    一、远程推送通知

        远程推送服务,又称为APNs(Apple Push Notification Services)。简单推送流程如下:

    二、极光推送通知

         JPush iOS Push 包括 2 个部分,APNs 推送(代理),与 JPush 应用内消息。

        1、APNs 推送,JPush 代理开发者的应用(需要基于开发者提供的应用证书),向苹果 APNs 服务器推送。由 APNs Server 推送到 iOS 设备上。

        2、JPush 应用内推送部分,即 App 启动时,内嵌的 JPush SDK 会开启长连接到 JPush Server,从而 JPush Server 可以推送消息到 App 里。

    三、本地推送通知

        1、什么是本地推送通知

           顾名思义,就是不需要联网就能发出的推送通知(不需要服务器的支持)。

        2、本地推送通知的使用场景

           常用来定时提醒用户完成一些任务,比如清理垃圾、记账、买衣服、看电影、玩游戏。

        3、如何发出本地推送通知

    // 1、创建本地推送通知对象
    UILocalNotification *ln = [[UILocalNotification alloc] init];
    
    // 2、设置本地推送通知属性
    // 推送通知的触发时间(何时发出推送通知)
    @property(nonatomic,copy) NSDate *fireDate;
    // 推送通知的具体内容
    @property(nonatomic,copy) NSString *alertBody;
    // 在锁屏时显示的动作标题(完整标题:“滑动来” + alertAction)
    @property(nonatomic,copy) NSString *alertAction;
    // 音效文件名
    @property(nonatomic,copy) NSString *soundName;
    // app图标数字
    @property(nonatomic) NSInteger applicationIconBadgeNumber;
    
    // 调度本地推送通知(调度完毕后,推送通知会在特地时间fireDate发出)
    [[UIApplication sharedApplication] scheduleLocalNotification:ln];
    
    // 获得被调度(定制)的所有本地推送通知
    @property(nonatomic,copy) NSArray *scheduledLocalNotifications;
    (已经发出且过期的推送通知就算调度结束,会自动从这个数组中移除)
    
    // 取消调度本地推送通知
    - (void)cancelLocalNotification:(UILocalNotification *)notification;
    - (void)cancelAllLocalNotifications;
    
    // 立即发出本地推送通知
    - (void)presentLocalNotificationNow:(UILocalNotification *)notification;
    
    // 每隔多久重复发一次推送通知
    @property(nonatomic) NSCalendarUnit repeatInterval;
    
    // 点击推送通知打开app时显示的启动图片
    @property(nonatomic,copy) NSString *alertLaunchImage;
    
    // 附加的额外信息
    @property(nonatomic,copy) NSDictionary *userInfo;
    
    // 时区
    @property(nonatomic,copy) NSTimeZone *timeZone;
    // (一般设置为[NSTimeZone defaultTimeZone] ,跟随手机的时区)

         4、点击本地推送通知

           当用户点击本地推送通知,会自动打开app,这里有2种情况:

           1》app并没有关闭,一直隐藏在后台

    // 让app进入前台,并会调用AppDelegate的下面方法(并非重新启动app)
    - (void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification;

           2》app已经被关闭(进程已死)

    // 启动app,启动完毕会调用AppDelegate的下面方法
    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions;
    // launchOptions参数通过UIApplicationLaunchOptionsLocalNotificationKey取出本地推送通知对象
     四、远程推送原理(参考http://blog.csdn.net/ryantang03/article/details/8482259
  • 相关阅读:
    练习
    PHP练习
    foreach使用
    IPTABLES
    dhcp snooping、ARP防护、
    锐捷无线加密
    SQL基础五(作业代码)
    TensorFlow 制作自己的TFRecord数据集
    Tensorflow原理通用
    Python中图像的缩放 resize()函数的应用
  • 原文地址:https://www.cnblogs.com/yaann/p/4222349.html
Copyright © 2011-2022 走看看