首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

iOS13 即将到来,iOS 推送 DeviceToken 适配方案详解

关于提前适配iOS13 苹果推送DeviceToken的通知 随着苹果iOS13系统即将发布,个推提前推出DeviceToken适配方案,以确保新版本的兼容与APP推送服务的正常使用。...iOS13的一个重要变化是"[deviceToken description]" 会受不同运行环境及系统的影响而发生变化,如果未及时做好适配工作,会导致SDK绑定到错误的DeviceToken,从而影响...在Xcode11、iOS13运行时"[deviceToken description]",情况如下图所示: ?...针对开发者注册DeviceToken的不同场景,个推提出了相应的iOS推送SDK适配方案。  ...适配方案:因获取DeviceToken字符串的过程就是将NSData转换成HexString,在"[deviceToken description]"发出变化后,就需要开发者修改转换方案,参考代码如下图

1.4K40
您找到你想要的搜索结果了吗?
是的
没有找到

苹果APNS推送效率研究总结

关于推送效率,苹果官方给出的建议是当建立一个Socket通道后,尽可能将需要推送消息和接受的devicetoken连续发送至APNS服务器端。...但是,这里需要注意如果消息队列中存在不正确的devicetoken时,苹果会在接受到这个devicetoken时,强制中断当前的Socket通道,这样会造成后面的消息无法正常发送给APNS服务器。...很简单,我的做法是在一个消息队列中,每发送一条消息,就去read当前的Socket通道,苹果会在遇到错误的devicetoken后进行标记,我们可以read到这个数据,从而将错误的devicetoken...从队列中剔除,并尝试重新建立一个Socket通道,然后从错误的devicetoken后面继续推送。...那么,我们通过定期从feedback中获得这些devicetoken后,在数据库中进行标记,在下次的推送中,从消息队列中剔除这些devicetoken,这样减少了无用功,推送一次会完成的更快。

79410

iOS推送APNs

deviceToken是不透明的NSData实例,其中包含Apple分配给特定设备上特定应用程序的唯一标识符。只有APN才能解码和读取deviceToken的内容。...安装应用后第一次打开APP获取deviceToken时必须联网。如果在获取时没有网络,在重新连接网络后会第一时间返回deviceToken。 不需要缓存DeviceToken。...如果已经生成了有效的DeviceToken,系统或有缓存,在 重新安装App、重装系统、或者从备份还原系统时,会重新生成DeviceToken并更新缓存。...debug环境下是向开发环境的APNs服务器申请DeviceToken,而release环境是向生产环境的APNs服务器申请的。如果环境不匹配,则会出现Bad deviceToken错误。...deviceToken与bundleId存在着关联。如果deviceToken与证书中的bundleId不匹配,会返回DeviceTokenNotForTopic

3.5K20

推送-推送原理性说明

deviceToken的生成 当一个App注册接收远程通知时,系统会发送请求到APNs服务器,APNs服务器收到此请求会根据请求所带的key值生成一个独一无二的value值也就是所谓的deviceToken...Provider收到deviceToken以后进行储存等相关处理,以后Provider给我们的设备推送通知的时候,必须包含此deviceTokendeviceToken到底是什么?有什么用?...服务器根据此Token key编码生成一个deviceToken。...唯一性并不是说一台设备上的一个应用程序永远只有一个deviceToken,当用户升级系统的时候deviceToken是会变化的。...{ [JPUSHService registerDeviceToken:deviceToken];//将 deviceToken 传给极光推送 } 综上,注册及接收推送 必须 使用真机

3.8K20

IOS系统推送原理

具体过程,见下图 1、[Client App]注册消息推送; 2、[Client App]跟[APNS Service]要deviceToken, Client App接收deviceToken; 3、...[Client App]将deviceToken发送给[Provider]Push服务端程序; 4、当Push服务端程序满足发送消息条件了,[Provider]向[APNS Service]发送消息;...Device Token:设备令牌、用户标识 1.获取devicetoken: 1>客户端向苹果服务APNS,发送设备的UDID和英语的Bundle Identifier. 2>经苹果服务器加密生成一个...deviceToken 3>将当前用户的deviceToken(用户标识),发送给自己应用的服务器 4>自己的服务器,将得到的deviceToken,进行保存 !!!...2.获取到deviceToken后推送消息给设备 5>需要推送的时候,将消息和deviceToken一起发送给APNS,苹果服务器,再通过deviceToken找到用户,并将消息发给用户  参考文章

1.5K10

个推推送iOS版 常见问题详解

根据CID去查devicetoken,确认CID和devicetoken绑定是否正确。 3.    查看证书是否上传错误 4.    服务端推送的,请检查离线时间是否设置。...原因如下:换证书环境后,devicetoken是变掉了,但是CID没变导致不会立即重新绑定devicetoken(一般是24小时后会重新绑定),服务端记录的还是原来的devicetoken。...24小时内做测试的话,会因Clientid和devicetoken绑定问题导致消息接收不到,因为证书更换后的devicetoken变掉了但没有更新到服务器,导致服务端查询到的devicetoken是错误的...因证书环境变更,导致Clientid与devicetoken绑定变化,但服务端的数据没有更新,还是与旧的devicetoken绑定的。...10、生产证书下怎么获取devicetoken

1.2K110

快速上手友盟推送前后端

单点发送可以根据唯一的devicetoken发送消息给用户,因此可以把这个token和数据库中用户名进行绑定,根据用户名查询出token给指定用户发送即可。...用Autoriwed注入 youMain.sendAndroidBroadcast(model); } /** * 通过友盟发送给指定用户,这个根据devicetoken...给指定的app发送消息,这个devicetoken在给用户注册的时候可以记录下来,存到数据库 * 这个token可以跟用户名进行绑定,根据用户名去查找token,这样就可以给指定用户发送消息了...测试,您好":model.get("text")); String devicetoken = (String) model.get("devicetoken");//上面已经判断过空的情况...unicast.setDeviceToken( devicetoken); unicast.setTicker(ticker); unicast.setTitle

1.2K50

iOS 推送手机消息背后的技术

App,可以认为是由deviceID、bundleId和安装时的相关信息生成的,App的升级操作deviceToken不变,卸载重装App、恢复和重装操作系统后的deviceToken会发生变化。...苹果的APNs服务是基于deviceToken实现的,因此需要将设备的deviceToken发送到我们的业务服务器中,用于后续的消息推送。...一个设备可能登录过多个用户,一个用户也可能在多个设备中登录过,当我们需要给不同用户推送不同的消息时,除了deviceToken之外,我们还需要保存用户的openid与deviceToken的映射关系。...在新闻类App出现事实热点新闻时,后台服务就可以携带消息内容和deviceToken等内容,向苹果的APNs服务发起消息推送请求,推送消息的实现是异步的,只要请求格式和deviceToken检查通过APNs...5.1、获取设备deviceToken 在App启动时,我们可以通过UIApplication的registerForRemoteNotifications方法向苹果的APNS服务器请求deviceToken

3.9K103

iOS 远程推送概念相关准备工作代码实现:(前提:确保bundleID和网站的配置一样)AppDelegate中的全部代码

远程推送原理 ---- 准备工作 开发iOS程序的推送功能, iOS端需要做的事 请求苹果获得deviceToken UDID : 目的是将来可以找到手机 Bundle ID : 目的是将来可以找到手机中的程序...得到苹果返回的deviceToken 发送deviceToken给公司的服务器 监听用户对通知的点击 调试iOS的远程推送功能必备条件:真机、付费开发者账号 调试推送需要的证书文件 1> aps_development.cer...application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken...application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken...{ // 将来要在这里将Token 发送给自己的服务器做保存 NSLog(@"deviceToken: %@", deviceToken); } #pragma mark 接收到远程推送的消息时调用此方法

1.9K100

iOS开发--本地通知与远程通知

能解释清楚肯定就有货真价实的开发经验 使用远程推送 1、获取苹果获得deviceToken-获取手机UDID+应用的唯一标识(bundel ID) 2、得到苹果返回的deviceToken 3、发送...deviceToken给公司的服务器 4、监听用户对通知的点击 如何调试远程推送功能 1、真机 2、调试推送需要的证书文件 证书自己配置。。。...UIApplicationLaunchOptionsRemoteNotificationKey]) { // 跳转 // 添加一个红色的View } return YES; } // 获取DeviceToken...application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken...{ // 将DeviceToken传给服务器 NSLog(@"%@", deviceToken.description); } // 正常接到远程通知的时候会调用这个方法 - (void

3.1K20
领券