谈谈极光和融云组合遇到的自动弹框

集成极光完毕后,每次融云聊天,如果从通知栏点击推送消息 ,进入app的时候都会弹出一个提示框。先上图


谈谈极光和融云组合遇到的自动弹框_第1张图片
谈谈极光和融云组合遇到的自动弹框_第2张图片

莫名其妙就多了一个弹出框。

最开始不知道是融云sdk的弹框还是极光的弹框。索性把极光干掉,发现融云聊天可以正常了。然后再次一步步把极光集成,发现又出问题了。可以确定应该是极光和融云冲突了。怎么办呢?

直接注释掉极光的注册。感觉应该没有问题了。然后 尼玛居然还是一样的问题。无语了。赶紧把融云的注册也一并注释掉,感觉然并卵。。。。。彻底凌乱了。关键是一切的断点 都无效,也不知道 到底哪儿有问题。

我在想,既然极光的注册都被干掉了,一切的代理方法这些肯定无效了赛,我就没有挨着去注册极光的代理方法。但是我tmd的低估极光了。居然

- (void)application:(UIApplication *)application

didReceiveLocalNotification:(UILocalNotification *)notification {

[JPUSHService showLocalNotificationAtFront:notification identifierKey:nil];

}

这个方法还会被调用,我也是无语了。就是这个方法才会弹出对话框。

当然 极光的ios10前台推送方法

- (void)jpushNotificationCenter:(UNUserNotificationCenter *)center willPresentNotification:(UNNotification *)notification withCompletionHandler:(void (^)(NSInteger))completionHandler {

NSDictionary * userInfo = notification.request.content.userInfo;

UNNotificationRequest *request = notification.request; // 收到推送的请求

UNNotificationContent *content = request.content; // 收到推送的消息内容

NSNumber *badge = content.badge;  // 推送消息的角标

NSString *body = content.body;    // 推送消息体

UNNotificationSound *sound = content.sound;  // 推送消息的声音

NSString *subtitle = content.subtitle;  // 推送消息的副标题

NSString *title = content.title;  // 推送消息的标题

if([notification.request.trigger isKindOfClass:[UNPushNotificationTrigger class]]) {

[JPUSHService handleRemoteNotification:userInfo];

NSLog(@"iOS10 前台收到远程通知:%@", [self logDic:userInfo]);

//  [rootViewController addNotificationCount];

}

else {

// 判断为本地通知

NSLog(@"iOS10 前台收到本地通知:{\nbody:%@,\ntitle:%@,\nsubtitle:%@,\nbadge:%@,\nsound:%@,\nuserInfo:%@\n}",body,title,subtitle,badge,sound,userInfo);

}

completionHandler(UNNotificationPresentationOptionBadge|UNNotificationPresentationOptionSound|UNNotificationPresentationOptionAlert); // 需要执行这个方法,选择是否提醒用户,有Badge、Sound、Alert三种类型可以设置

}

如果不需要弹框提示也可以把

completionHandler(UNNotificationPresentationOptionBadge|UNNotificationPresentationOptionSound|UNNotificationPresentationOptionAlert); // 需要执行这个方法,选择是否提醒用户,有Badge、Sound、Alert三种类型可以设置

方法中的弹框取消。

总结:就是说弹框肯定是 监听了某个代理,代理内部的方法。把相应的代理方法注释掉就ok了。关键是极光注释掉 注册居然还会调用。佩服。

你可能感兴趣的:(谈谈极光和融云组合遇到的自动弹框)