iOS 个推透传机制

iOS本身没有透传推送机制,是否使用第三方并不会改变推送的机制,第三方只是帮你写好与APNS的交互,你只需设置要传送的消息就好。只要有推送过来就一定会显示推送弹窗,除非用户关闭通知。
个推的透传就走他们自己的透传方法的,分在线离线,离线就是后台或app未启动,在线就是app打开状态,如果是离线状态收到消息会走APNS(表现就是顶部弹框、通知栏弹框、角标变化,如果是静默推送,还会自动执行一个方法,最下面有写。普通推送不会走),但是打开app后就会走透传消息方法AAA(静默推送的话直接走透传方法AAA,普通推送的话,先走BBB/CCC,再走AAA),如果是在线状态就直接走透传消息,不走APNS。如果你是用透传消息推送的话,都在透传方法中处理就好了。
结合我们公司的App,之前有个疑问:发单的那一刻,我们公司后台走的是APNs还是透传呢? 现在可以肯定的回答:离线走APNs,在线走透传。

  • 透传消息方法AAA
    执行时间1:程序离线(在后台或者app未启动)收到推送时候,当由离线进入在线的时候会执行(此时offLine为YES)。如果一直是离线,那么肯定不会执行该方法。
    执行时间2:程序在线收到推送的时候会执行(此时offLine为NO)。
- (void)GeTuiSdkDidReceivePayloadData:(NSData *)payloadData andTaskId:(NSString *)taskId andMsgId:(NSString *)msgId andOffLine:(BOOL)offLine fromGtAppId:(NSString *)appId {

}

普通推送(收到推送,有声音有文字)

应用在后台收到通知的时候(不点开通知,也不打开APP哦),就不会执行如下代码

  • 在iOS 10之前,点通知,会调用如下方法BBB。
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler{
  ...   
  做你想做的操作。例如更新UI,跳转界面,操作userInfo中的内容。
  ...
}
  • iOS 10 及以后版本,点击通知,会调用如下方法CCC
-(void)userNotificationCenter:(UNUserNotificationCenter *)center didReceiveNotificationResponse:(UNNotificationResponse *)response withCompletionHandler:(void (^)(void))completionHandler{
    
      ...
     做你想做的操作。例如更新UI,跳转界面,操作userInfo中的内容。
      ...

    NSLog(@"didReceiveNotification:%@", response.notification.request.content.userInfo);
    // [ GTSdk ]:将收到的APNs信息传给个推统计
    [GeTuiSdk handleRemoteNotification:response.notification.request.content.userInfo];
    completionHandler();
    
}
静默推送(收到推送,没有声音没有文字)。应用在后台(应用被杀死或者应用未启动不满足静默推送)收到通知的时候(不点开通知,也不打开APP哦),就会立刻执行如下的代码。 部分iOS10+还是iOS10-
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler{
  ...   
做你想做的操作:这里我用苹果自带的文字转语音播放userInfo里面的指定内容
  ...
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一、以下为我集成时的问题与解决方案: 1、iOS通知,在官网后台怎么推送,不能单独推送通知? iOS只能透传消息,...
    _浅墨_阅读 12,252评论 27 24
  • 网上介绍iOS Push的文章有很多,但是大部分都总结得非常零散,加上之前也一直没好好总结过,对某些地方也不求甚解...
    纸简书生阅读 7,881评论 1 29
  • 点击查看原文 Web SDK 开发手册 SDK 概述 网易云信 SDK 为 Web 应用提供一个完善的 IM 系统...
    layjoy阅读 14,751评论 0 15
  • 最近一段时间工作量比较大, 抽不出时间来整理博客, 趁今天任务量较小的时候整理下关于环信推送的问题, 介绍. 集成...
    imGeek阅读 7,690评论 1 3
  • 让我再想你一次,第一次见面的和谐。从容的微笑,微风吹过你的卷发,漫步在冬日大街上的温暖,过马路时一路的绿灯,这是运...
    无聊的无爱阅读 2,929评论 0 0