美文网首页
谈谈极光和融云组合遇到的自动弹框

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

作者: juefeiye | 来源:发表于2017-04-18 09:36 被阅读197次

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

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

    最开始不知道是融云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了。关键是极光注释掉 注册居然还会调用。佩服。

    相关文章

      网友评论

          本文标题:谈谈极光和融云组合遇到的自动弹框

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