注册

离线消息收不到

请问 您那边是怎么样解决的
已邀请:
配置环信apns推送消息的准备工作
配置证书:http://docs.easemob.com/doku.php?id=start:300iosclientintegration:10prepareforsdkimport
工程中需要写的代码:http://docs.easemob.com/doku.p ... 0apns
1.检查下你后台绑定的证书名称和你工程里面的名称是不是对应的 ,初始化appkey的方法 填写的证书名称
2.看下devicetoken是否传给了SDK
// 将得到的deviceToken传给SDK (真机上获取,打印下deviceToken)
- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken{
    [[EaseMob sharedInstance] application:application didRegisterForRemoteNotificationsWithDeviceToken:deviceToken];
}
3.调用rest接口,查看下登录的用户,绑定的证书名称和devicetoken是不是正确。这里说下查看的方法。
1)首先看下这个链接http://docs.easemob.com/doku.php?id=start:100serverintegration:20users
调用rest接口,需要你的appkey ,Client Id,Client Secret(到环信管理后台查看),获取到token
2)例子:
curl -X POST "https://a1.easemob.com/easemob ... ot%3B -d '{"grant_type":"client_credentials","client_id":"YXA6wDs-MARqEeSO0VcBzaqg11","client_secret":"YXA6JOMWlLap_YbI_ucz77j-4-mI0dd"}'
这 个是环信的,改成自己的话,将“easemob-demo/chatdemoui” 换成自己appkey #号前后两部分,"grant_type"和"client_secret"后面的参数换成自己的Client Id与Client Secret对应的参数,替换完成之后,复制粘贴到终端上,点击回车运行,如果没有出错会获取到"access_token"后面的参数。
3)然后调用链接里面的 给IM用户的添加好友的接口
例 子:curl -X POST -H "Authorization: Bearer YWMtP_8IisA-EeK-a5cNq4Jt3QAAAT7fI10IbPuKdRxUTjA9CNiZMnQIgk0LEU2" -i "https://a1.easemob.com/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打包,才能测试。)
注 意:(app在后台静默3分钟以上或者杀掉app,长连接断开才会走apns推送,3分钟以内的话要想收到消息通知,需要实现本地通知,环信demo是实 现本地通知的方法在 MainViewController.m类  - (void)showNotificationWithMessage:(EMMessage *)message,这个方法是在接收消息的回调中被调用的。具体的请查看demo。)

要回复问题请先登录注册