美文网首页iOS Developer
iOS推送消息处理

iOS推送消息处理

作者: ZHANGMIAO_ | 来源:发表于2017-02-08 14:03 被阅读459次

注册远程推送

极光推送跟着极光推送官方的文档集成就行,使用控制台测试是否收到通知,如果收不到,可以先检查远程通知是否注册成功。

所有苹果设备,在联网状态下都会与苹果的服务器建立长连接,调用[application registerUserNotificationSettings],如果注册成功会调用application:didRegisterForRemoteNotificationsWithDeviceToken方法,发送苹果设备的deviceToken给苹果服务器。

-(void)application:didRegisterForRemoteNotificationsWithDeviceToken:

这里可以打印远程推送是否注册失败

- (void)application:(UIApplication *)application didFailToRegisterForRemoteNotificationsWithError:(NSError *)error
{
    NSLog(@"didFailToRegisterForRemoteNotificationsWithError - %@", error);
}

接收远程推送消息通知

接收到的通知可以在这个方法里打印并操作

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler
{
    // 这里处理userInfo,接收到的推送消息

   if (userInfo) {
       
   }
    completionHandler(UIBackgroundFetchResultNewData);
}

处理点击远程推送的通知

当用户点击远程推送通知时,会自动打开APP,这里有2种情况:
1> App并没有关闭,一直隐藏在后台

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler
{
    // 这里处理userInfo,接收到的推送消息

   if (userInfo) {
       
       NSLog(@"收到了推送消息");
       
   } 
    completionHandler(UIBackgroundFetchResultNewData);
}

2> App被杀死

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
   // 判断launchOptions是否有推送消息 跳转到对应的界面
   NSDictionary *userInfo = launchOptions[UIApplicationLaunchOptionsRemoteNotificationKey];

   if (userInfo) {
       
       NSLog(@"收到了推送消息");
       
   } else {
       
       NSLog(@"没有收到推送消息,从icon点击进来的");
   }
   return YES;
}

获取用户在【iPhone - 设置 - 通知 - AppName】是否允许通知的开关状态


if ([[UIDevice currentDevice].systemVersion floatValue] >= 8.0) {
        UIUserNotificationSettings *setting = [[UIApplication sharedApplication] currentUserNotificationSettings];
        if ( setting.types == UIUserNotificationTypeNone)  {
            NSLog(@"推送关闭");
        }else{
            NSLog(@"推送打开");
        }
    } else {
        UIRemoteNotificationType type = [[UIApplication sharedApplication] enabledRemoteNotificationTypes];
        if(type == UIRemoteNotificationTypeNone){
            NSLog(@"推送关闭");
        }else{
            NSLog(@"推送打开");
        }
    } 

相关文章

  • iOS推送消息处理

    注册远程推送 极光推送跟着极光推送官方的文档集成就行,使用控制台测试是否收到通知,如果收不到,可以先检查远程通知是...

  • 【iOS】处理推送消息

    很多应用都会实现推送功能,我们可以集成第三方框架实现推送功能,比如:JPush推送:https://www.jpu...

  • 细说 iOS 消息推送

    细说 iOS 消息推送 细说 iOS 消息推送

  • iOS 远程推送消息处理

    一、引言 应用开发到一定阶段的时候,运行为了吸引用户提高应用的使用频率,消息推送这个简单的功能是比不可少的。对于 ...

  • iOS消息推送接收处理

    首先要说明两个概念:本地通知和远程推送。本地通知是由本地应用触发的,接收会比较及时。远程推送是通过苹果的APNs发...

  • iOS 消息推送接收处理

    结合最近做的项目来总结一下,在我们接收到推送通知后我们将要怎么处理这条推送消息,也为以后再做相关推送的时候能...

  • ios通知小结

    调试时发现,iOS 处理推送通知的方式在 iOS 9 和 iOS 10 上面有所不同。接收消息推送有两个代理方法:...

  • 技术博客

    iOS简单国际化的处理 collectionView的规则流水布局与不规则流水布局 iOS消息推送机制 iOS知识...

  • iOS 远程推送通知

    iOS 远程推送通知 分分钟搞定IOS远程消息推送 iOS推送通知的实现步骤 推送通知iOS客户端编写实现及推送服...

  • iOS 远程消息推送 APNS推送原理和一步一步开发详解篇(新手

    iOS 远程消息推送 APNS推送原理和一步一步开发详解篇(新手推荐) iOS 远程消息推送 APNS推送原理和一...

网友评论

    本文标题:iOS推送消息处理

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