美文网首页
iOS Voip通知处理

iOS Voip通知处理

作者: 属于我的 | 来源:发表于2021-08-05 15:55 被阅读0次

    iOS Voip通知处理

        相信大家常用的都是apns通知,大部分也是集成极光的SDK进行处理,除了软电话以及即时通讯类的APP大家也很少接触Voip通知。在这里就给大家讲一下,一个小白,从了解到完成Voip的过程。

        首先Voip通知会在收到通知的时候后台唤醒我们要接收通知的APP,但APNS不会,在Voip唤醒APP后我们就可以做出相应的操作。比如震动,声音,以及其他等等操作。

        Voip通知需要大家引入<PushKit/PushKit.h>库,需要在BuildPhase -> Link Binary Witn Libraries 中倒入PushKit以及callKit库,如果没有即时通讯功能引入callKit库容易被拒哦。

        证书在这就不给大家多说了,进入开发者后台,点击证书选项很容易就能找到Voip证书。

    给大家看一下实现吧

        1、初始化

        2、三个代理方法

            (1)APP启动时通过此代理方法,获取VoipToken以及推送方式Type

      - (void)pushRegistry:(PKPushRegistry*)registrydidUpdatePushCredentials:(PKPushCredentials*)pushCredentialsforType:(PKPushType)type

               (2) 收到消息后的代理方法 (收到的通知内容都在 payload 参数内,在这个方法里,大家可以做一些收到通知后的内容)

    - (void)pushRegistry:(PKPushRegistry *)registry didReceiveIncomingPushWithPayload:(PKPushPayload *)payload forType:(PKPushType)type withCompletionHandler:(void (^)(void))completion

              (3)过期token的类型

    - (void)pushRegistry:(PKPushRegistry *)registry didInvalidatePushTokenForType:(PKPushType)type

    如果童鞋们的服务端没有处理过Voip也无从下手的话,可以把下面这篇文章发给他们看哦。https://www.programmersought.com/article/81816206615/

    说一下坑,就是处理VoipToken,因为它是data类型,而服务端要的是string类型,所以要进行转换,找了很多方法,最后的方法是这样的,希望大家不要像我一样再次踩坑。

    NSMutableString *str = [NSMutableString string];

        constchar*bytes = pushCredentials.token.bytes;

        for(inti =0; i < pushCredentials.token.length; i++) {

            [strappendFormat:@"%02x",bytes[i]&0x000000FF];

        }

    相关文章

      网友评论

          本文标题:iOS Voip通知处理

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