【原来配置环信apns就这么简单】内含各种问题点详讲
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
【原来配置环信apns就这么简单】内含各种问题点详讲
如果按照以上方法配置完以后,测试的时候,如果还是收不到apns推送消息的话,按照下面步骤进行排查。
注意:(app在后台静默3分钟以上或者杀掉app,长连接断开才会走apns推送,3分钟以内的话要想收到消息通知,需要实现本地通知,环信demo是实现本地通知的方法在MainViewController.m类- (void)showNotificationWithMessage:(EMMessage *)message,这个方法是在接收消息的回调中被调用的。
具体的请查看demo。
还需要注意一点的是,看看自己是否设置了全局免打扰,就是说在某个时段不接收apns推送消息,一般新集成的是不会设置的,设置代码在上面第二个链接2中)另外还要注意的是请确保导出p12时使用的电脑和创建CertificateSigningRequest.certSigningRequest文件的电脑是同一台,导出证书的时候要直接点击导出,不要点击下面的内容导出,确认申请的证书是否带有推送功能。
1.检查下你后台绑定的证书名称和你工程里面的名称是不是对应的,初始化appkey的方法填写的证书名称(如图)
2.看下devicetoken是否传给了SDK,然后在环信管理后台看下IM用户是否显示了证书名称,如果显示了,说明devicetoken传给SDK,绑定成功了。
// 将得到的deviceToken传给SDK (真机上获取,打印下deviceToken)
- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceT oken:(NSData *)deviceToken{
[[EaseMob sharedInstance] application:application didRegisterForRemoteNotificationsWithDeviceT oken:deviceToke n];
} (如图)
3.调用rest接口,查看下登录的用户,绑定的证书名称和devicetoken是不是正确。
这里说下查看的方法。
1)首先看下这个链接 ... users
调用rest接口,需要你的appkey ,Client Id,Client Secret(到环信管理后台查看),获取到token
2)例子:
curl -X POST
"/easemob-
demo/chatdemoui/token"'{"grant_type":"client_credentials","cli ent_id":"YXA6wDs- MARqEeSO0VcBzaqg11","client_secret":"YX A6JOMWlLap_YbI_ucz77j-4-mI0dd"}'
这个是环信的,改成自己的话,将“easemob-demo/chatdemoui” 换成自己appkey #号前后两部分,"client_id"和"client_secret"后面的参数换成自己的Client Id与Client Secret对应的参数,替换完成之后,复制粘贴到终端上,点击回车运行,如果没有出错会获取到"access_token"后面的参数。
3)然后调用链接里面的给IM用户的添加好友的接口
例子:curl -X POST -H "Authorization: Bearer YWMtP_8IisA-EeK- a5cNq4Jt3QAAAT7fI10IbPuKdRxUTjA9CNiZMnQIgk0LEU2"
'/easemob-
demo/chatdemoui/users/jliu/contacts/users/yantao'
YWMtP_8IisA- EeK-a5cNq4Jt3QAAAT7fI10IbPuKdRxUTjA9CNiZMnQIgk0LEU2这个参数换成自己获取到的"access_token"后面的参数,‘easemob-demo/chatdemoui’换成自己的 appkey,‘jliu’和‘yantao’替换成自己的环信 ID,‘yantao’这个环信ID一定要是登录状态的,只有在登录状态才会获取到他绑定的证书名称和devicetoken。
替换完成之后,复制粘贴到终端上,点击回车,正确的话,会从得到的信息中看到"notifier_name"和"device_token"这两个参数,就是证书名称和 devicetoken,检查下是否正确。
4.测试推送证书的时候,首先登录两个环信ID(其中一个账号需要真机登录),相互收发消息,如果没有问题的话,那么将真机上的app直接杀掉(双击home键,找到对应的app杀掉),然后给之前真机登录的环信ID发消息,如果一切都正常的话,那么会收到apns推
送消息,通知栏会有提示。
5. 如果还是收不到推送的话,可以将p12证书,证书密码,devicetoken,还有是什么环境的证书,这些信息发给环信的技术支持,帮着测试下证书。
一般收不到推送,都是证书的问题,需要重新配置。
(如果是生产环境的证书,需要你的app上传到AppStore或者ad hoc打包,才能测试。
)。