那些年远程推送给我留下的坑

今天终于有时间,好好整理远程推送的那些坑了。以下就是,我在做推送(极光推送为例)遇到的几个坑,希望大家能安利一下。(这是最近工作一个简单的总结,很想在后期找个一大把空闲的午后,好好反省下自己,都做了什么见不得人的事)

1坑:

- (void)application:(UIApplication*)application didReceiveRemoteNotification:(NSDictionary*)userInfo

fetchCompletionHandler:(void(^)(UIBackgroundFetchResult))completionHandler(7.0后引进的方法,拥有多任务属性)会覆盖- (void)application:(UIApplication*)application didReceiveRemoteNotification:(NSDictionary*)userInfo (没有多任务特点)

*备注:两个方法不要同时用,两个同时存在,优先调用前者(前后台点击通知,会调用者两方法中一个)


2坑:

因为 RegistrationID 是 JPush SDK 注册完成之后才得到的,所以调用 SDK API 来获取 RegistrationID 的值时需要稍注意,不是总能够立即得到。(这有可能导致你推送出错)

建议:在监听到 kJPFNetworkDidLoginNotification 这个通知后的代码里,来获取 RegistrationID 的值。


3坑:

aps =     {

alert = haunting;

badge = 1;

"content-available" = 1;

sound = default;

};

**注:除了alert可以为空,其他为空或者("content-available" = 0)会导致

- (void)application:(UIApplication*)application didReceiveRemoteNotification:(NSDictionary*)userInfo fetchCompletionHandler:(void(^)(UIBackgroundFetchResult))completionHandler(7.0后引进的方法,拥有多任务属性)该方法不走(楼主亲试)


第四个不算是坑:算是个友情提示:

//接收远程通知(iOS7.0后,允许在后台时刷新数据)

- (void)application:(UIApplication*)application didReceiveRemoteNotification:(NSDictionary*)userInfo

fetchCompletionHandler:(void(^)(UIBackgroundFetchResult))completionHandler {

NSLog(@"=======收到推送%@========",userInfo);

NSDictionary*APNSDic = [NSDictionarydictionary];

APNSDic = userInfo[@"aps"];

if(application

.applicationState==UIApplicationStateActive){

。。。。。。。。。。。

}

elseif(application

.applicationState==UIApplicationStateBackground){

if(userInfo) {

。。。。。。。。。。。。

}

}

//在此方法中一定要调用completionHandler这个回调,告诉系统是否处理成功

//    UIBackgroundFetchResultNewData, //成功接收到数据

//    UIBackgroundFetchResultNoData,  //没有接收到数据

//    UIBackgroundFetchResultFailed   //接受失败

[JPUSHServicehandleRemoteNotification:userInfo];

if(userInfo) {

completionHandler(UIBackgroundFetchResultNewData);

}else{

completionHandler(UIBackgroundFetchResultNoData);

}

}

以上就是那些年我踩过的坑,望各位珍重!

当然只是开个玩笑,楼主希望与各位互相学习,共同进步!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容