PushKit

1,PushKit简介:

iOS10之后,苹果推出了CallKit框架增强的VoIP应用的体验,主要表现在3个方面:

  • 在锁屏状态下,如果有网络电话呼入,VoIP的应用可以打开系统电话应用的待接听界面,告别了原来推送通知的展现方式。
  • VoIP的应用内发起通话,挂断电话等记录可以体现在系统电话应用的通话记录中。
  • 从系统电话应用的通话记录,通讯录或者Siri的进入VoIP的应用,发起通话。
    总而言之,我们的网络电话拥有应用了状语从句:系统-通话应用一样的用户体验

那么,如何在锁屏状态下,呼出系统应用的待接听界面?如何在应用杀死或者后台的情况下,知道有用户呼入?

在iOS8上之后,苹果引入新的框架PushKit,一种新的推方式,有别于普通的APN的,它不会弹出通知,而是悄悄的告诉我们的应用程序有推送过来,让应用程序做出相应的处理.iOS10开始,苹果不在支持的VoIP应用的后台插座长连接,需要使用苹果推荐的pushkit,降低应用耗电.PushKit可以说是“准实时”的,实际上延迟在1秒左右。

2,制作证书,与APNS差不多,在此略
系统设置



3,演示

#import <PushKit / PushKit.h>

@interface AppDelegate ()< PKPushRegistryDelegate >


@结束


- (无效)registPushKit {

    dispatch_queue_t mainQueue = dispatch_get_main_queue ();

    PKPushRegistry * voipRegistry = [[ PKPushRegistry alloc ] initWithQueue:mainQueue];

    voipRegistry。委托 = 自我 ;

    voipRegistry。desiredPushTypes = [ NSSet setWithObject PKPushTypeVoIP ];

}

#pragma mark - delegate

- (void)pushRegistry :( PKPushRegistry *)注册表didUpdatePushCredentials :( PKPushCredentials *)凭证forType :( NSString *)type {

NSString * tokenString = [[[[credentials.token description] stringByReplacingOccurrencesOfString:@ “<” withString:@ “” ] stringByReplacingOccurrencesOfString:@ “>” withString:@ “” ] stringByReplacingOccurrencesOfString:@ “” withString:@“ ”];

}

- (void)pushRegistry:(PKPushRegistry *)registry didReceiveIncomingPushWithPayload:(PKPushPayload *)payload forType:(PKPushType)type {

    NSDictionary *dic = [NSDictionary dictionaryWithDictionary:payload.dictionaryPayload];


    UILocalNotification* localNotification = [[UILocalNotification alloc] init];

    localNotification.fireDate = [NSDate date];

    localNotification.alertBody =@"sdfdsfds";//不能

    localNotification。soundName = @“默认” ;

    localNotification。alertTitle = @“一条来自PushKit的推送” ;

    [[ UIApplication sharedApplication ] presentLocalNotificationNow :localNotification];

}

注:要想系统弹出界面必须与CallKit进行集成,但是CallKit在国内已经被强制下架,因此不讨论,感兴趣的同学可以自行google.4



,sendNotification
4.1添加令牌
4.2选择证书
4.3连接服务器
4.4发送

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值