首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

iOS远程消息推送

如上是iOS消息推送的详细流程图,主要分为几个过程: (1)App启动过程中,使用UIApplication::registerForRemoteNotificationTypes函数与苹果的APNS(Apple Push Notification Service,苹果消息推送服务器)通信,发出注册远程推送的申请。 (2)若注册成功,APNs 会返回一个设备的标识符即 DeviceToken 给 App,回调函数application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData*)deviceToken 会被触发,App可以得到deviceToken。 (3)App获取到DeviceToken后,将DeviceToken发送给自己的服务端。 (4)服务端拿到DeviceToken以后,当有消息要推送时,服务端使用证书文件,向苹果的APNS服务器发起一个SSL连接。连接成功之后,发送一段JSON串,该JSON串包含推送消息的类型及内容。 (5)苹果的APNS服务器得到推送消息(JSON串)以后,向App发送通知消息,使得App的回调函数application:(UIApplication*)application didReceiveRemoteNotification:(NSDictionary *)userInfo被调用,App从userInfo中即可得到推送消息的内容。

02

测试妹子的呐喊:为什么总是收不到推送?

小树最近在开发公司 App 的一个新的功能,需要在用户上线的时候,给关注了她的用户发送一条推送消息。小树很快就完成了开发, 但测试人员却反馈说无法正常接收到推送。这可让小树着急死了,但小树调用的是原来的推送接口,对推送的相关业务并不熟悉。于是小树准备寻求资深工程师小黑的帮助。 苹果推送的沙盒环境 小树描述了以下问题,经验丰富的小黑立刻看出了端倪所在,问小树:是不是忘记设置推送类型为沙箱模式了? 此时的小树一脸茫然,赶紧问:什么是沙箱环境啊? 沙箱环境其实就是测试环境的意思,这是苹果系统习惯性的称呼。为了方

06

iOS13微信收款到账语音提醒开发总结

随着苹果爸爸在WWDC2019发布了新的iOS13,两年前的这篇微信iOS收款到账语音提醒开发总结方案已经不再适用,具体的原因是iOS13中(准确的说是使用XCode11编译)苹果不再允许PushKit应用在非voip电话的场景上。在iOS13中,苹果比以往更关注用户的隐私以及设备的电池续航问题,所以对PushKit的能力进行了收拢。如果需要使用PushKit的话则需要接入CallKit的接口,导致收到客户端收到Voip Push时会拉起一个接打电话的全屏界面,有在国区发布过应用的同学应该知道拉起这个界面是不被甲方允许的。这篇文章总结了在iOS13下的语音播报迁移方案以及一些需要注意的问题。目前微信的7.0.10版本已经带上了这部分的特性。

06

iOS推送如何实现的?

从图中可以很清楚的看出来推送的原理主要分为以下几步: 1.由App向iOS设备发送一个注册通知,用户需要同意系统发送推送。 2.iOS向APNs远程推送服务器发送App的Bundle Id和设备的UDID。 3.APNs根据设备的UDID和App的Bundle Id生成deviceToken再发回给App。 4.App再将deviceToken发送给远程推送服务器(自己的服务器), 由服务器保存在数据库中。 5.当自己的服务器想发送推送时, 在远程推送服务器中输入要发送的消息并选择发给哪些用户的deviceToken,由远程推送服务器发送给APNs。 6.APNs根据deviceToken发送给对应的用户。 · APNs 服务器就是苹果专门做远程推送的服务器。 ·deviceToken是由APNs生成的一个专门找到你某个手机上的App的一个标识码。 · deviceToken 可能会变,如果你更改了你项目的bundle Identifier或者APNs服务器更新了可能会变。

02
领券