ios 推送消息 极光推送/百度推送

来源:互联网 发布:2008服务器端口怎么开 编辑:程序博客网 时间:2024/04/27 23:23

APNS消息功能,想必是很多开发人员经常在开发过程中要遇到的功能点,在日常工作中,遇到了各种奇葩的实现方式,现就挑出一例进行批判,进行辱骂!


APP在启动后,需要实现推送消息的配置实现,调用唯一接口
- (void)registerUserNotificationSettings:(UIUserNotificationSettings *)notificationSettings


进行注册推送消息,此过程是异步的,APP的启动继续,这个时候,一般是显示登录界面。


等注册成功后,会拿到苹果推送的token,回调方法
- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken


在此方法无论是使用百度推送还是极光推送,均需要携带此token,向云注册此TOKEN,注册成功后,再进行返回的什么什么id,百度的叫做channelid,极光的叫做registrationid !只有注册成功,才能继续进行余下步骤,否则根本不可能实现推送消息。而这些步骤再强调一下,是异步的,异步的,异步的,异步的,异步的!!!!也就是说这个时候APP可能在登录界面,也可能是在别的界面!


让我恶心,感觉到可耻的实现就是在这儿了。
有服务端的开发人员在登录接口中要求上传(百度/极光)ID,也是我经常遇到一些朋友提出来的实现方式,我问他:你确定登录的时候,你一定拿到百度/极光ID了吗?对方肯定的回答:未必!!!
那为什么要在登录接口中有这个字段,为什么?回复:服务端让这么做的!我问,你解释过没?回复:解释的很清楚!
我就瞬间草尼玛的接口。。。




如果有写接口的开发人员看到如上喷,你感觉不舒服,那就说明你他妈的平常就是这么干的!IOS开发人员给你解释那么清楚,你他妈的就是没有听进去!愚蠢!


现在让我告诉你正确的做法:


登录接口中增加UDID字段,是设备的唯一识别字符串!登录继续进行!!
- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken
这个方法回调成功后,调用一个新的接口,此接口至少有两个字段:
udid,(百度/极光)ID!!
这样通过UDID中介作用实现用户和第三方平台的推送绑定!


新建一个表,专门负责维护用户的UDID和第三方平台的数据关联绑定!!!

0 0
原创粉丝点击