iOS Voip通知处理

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];


    }

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

相关阅读更多精彩内容

友情链接更多精彩内容