如果按照以上方法配置完以后,,測試的時(shí)候,,如果還是收不到apns推送消息的話,按照下面步驟進(jìn)行排查,。注 意:(app在后臺靜默3分鐘以上或者殺掉app,,長連接斷開才會(huì)走apns推送,3分鐘以內(nèi)的話要想收到消息通知,,需要實(shí)現(xiàn)本地通知,,環(huán)信demo是實(shí) 現(xiàn)本地通知的方法在 MainViewController.m類 - (void)showNotificationWithMessage:(EMMessage *)message,這個(gè)方法是在接收消息的回調(diào)中被調(diào)用的,。具體的請查看demo,。還需要注意一點(diǎn)的是,看看自己是否設(shè)置了全局免打擾,,就是說在某個(gè)時(shí)段不接收apns推送消息,,一般新集成的是不會(huì)設(shè)置的,設(shè)置代碼在上面第二個(gè)鏈接2中)另外還要注意的是請確保導(dǎo)出p12時(shí)使用的電腦和創(chuàng)建 CertificateSigningRequest.certSigningRequest文件的電腦是同一臺,,導(dǎo)出證書的時(shí)候要直接點(diǎn)擊導(dǎo)出,,不要點(diǎn)擊下面的內(nèi)容導(dǎo)出,確認(rèn)申請的證書是否帶有推送功能,。 2.看下devicetoken是否傳給了SDK,然后在環(huán)信管理后臺看下IM用戶是否顯示了證書名稱,,如果顯示了,,說明devicetoken傳給SDK,綁定成功了,。 // 將得到的deviceToken傳給SDK (真機(jī)上獲取,,打印下deviceToken) - (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken{ [[EaseMob sharedInstance] application:application didRegisterForRemoteNotificationsWithDeviceToken:deviceToken]; } (如圖) 3.調(diào)用rest接口,,查看下登錄的用戶,綁定的證書名稱和devicetoken是不是正確,。這里說下查看的方法,。 1)首先看下這個(gè)鏈接http://docs./doku.p ... users 調(diào)用rest接口,需要你的appkey ,,Client Id,,Client Secret(到環(huán)信管理后臺查看),獲取 到token 2)例子: curl -X POST "https://a1./easemob-demo/chatdemoui/token" '{"grant_type":"client_credentials","client_id":"YXA6wDs- MARqEeSO0VcBzaqg11","client_secret":"YXA6JOMWlLap_YbI_ucz77j-4-mI0dd"}' 這 個(gè)是環(huán)信的,,改成自己的話,,將“easemob-demo/chatdemoui” 換成自己appkey #號前后兩 部分,"client_id"和"client_secret"后面的參數(shù)換成自己的Client Id與Client Secret對應(yīng) 的參數(shù),,替換完成之后,,復(fù)制粘貼到終端上,點(diǎn)擊回車運(yùn)行,,如果沒有出錯(cuò)會(huì)獲取 到"access_token"后面的參數(shù),。 3)然后調(diào)用鏈接里面的 給IM用戶的添加好友的接口 例 子:curl -X POST -H "Authorization: Bearer YWMtP_8IisA-EeK- a5cNq4Jt3QAAAT7fI10IbPuKdRxUTjA9CNiZMnQIgk0LEU2" 'https://a1./easemob-demo/chatdemoui/users/jliu/contacts/users/yantao' YWMtP_8IisA- EeK-a5cNq4Jt3QAAAT7fI10IbPuKdRxUTjA9CNiZMnQIgk0LEU2這個(gè)參數(shù)換成自己獲 取到的"access_token"后面的參數(shù),‘easemob-demo/chatdemoui’換成自己的 appkey,,‘jliu’和 ‘yantao’替換成自己的環(huán)信 ID,,‘yantao’這個(gè)環(huán)信ID一定要是登錄狀 態(tài)的,只有在登錄狀態(tài)才會(huì)獲取到他綁定的證書名稱和devicetoken,。替換完成之后,,復(fù)制粘貼 到 終端上,點(diǎn)擊回車,,正確的話,,會(huì)從得到的信息中看到"notifier_name"和"device_token"這 兩個(gè)參數(shù),就是證書名稱和 devicetoken,,檢查下是否正確,。 4.測試推送證書的時(shí)候,首先登錄兩個(gè)環(huán)信ID(其中一個(gè)賬號需要真機(jī)登錄),,相互收發(fā)消息,,如果沒有 問題的話,那么將真機(jī)上的app直接殺掉(雙擊 home鍵,,找到對應(yīng)的app殺掉),,然后給之前真機(jī)登錄的環(huán)信ID發(fā)消息,如果一切都正常的話,,那么會(huì)收到apns推送消息,,通知欄會(huì)有提示。 5. 如果還是收不到推送的話,,可以將p12證書,,證書密碼,,devicetoken,還有是什么環(huán)境的證書,,這些信息發(fā)給環(huán)信的技術(shù)支持,,幫著測試下證書。一般收 不到推送,,都是證書的問題,,需要重新配置。(如果是生產(chǎn)環(huán)境的證書,,需要你的app上傳到AppStore或者ad hoc打包,,才能測試。)
|
|