2015-05-21 98 views
5

我已經爲服務器配置了apns_certificate.pem和apns_privatekey.pem。我使用node.js服務器來發送推送通知。我已成功發佈通知給apns服務器,但設備尚未收到任何推送通知。APNs消息發送到服務器,設備上沒有通知iOS

我也經歷了Troubleshooting Push Notifications。 我已經通過服務器端的以下命令檢查了所有pem文件,如故障排除文檔中所述。

$ openssl s_client -connect gateway.sandbox.push.apple.com:2195 -cert YourSSLCertAndPrivateKey.pem -debug -showcerts -CAfile server-ca-cert.pem 

它成功了。

我檢查了我的服務器能夠通過以下命令連接到apns服務器。

$ telnet 1-courier.push.apple.com 5223 
$ telnet gateway.sandbox.push.apple.com 2195 
$ telnet gateway.push.apple.com 2195 

我在iOS項目上正確配置了它,我也獲得了設備令牌。

但我仍然沒有得到推送通知在我的設備上。

+0

正在運行,當你發送通知的應用程序?如果是這樣的話:你是否實現了相應的方法? – tilo

+0

該應用程序在後臺運行。我實現了「(void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo」method也 –

+0

最後,我發現它是服務器的問題。服務器正在使用Node.js.將推送通知從節點模塊發送到apns存在一些問題。我使用了RayWanderlich的推送通知教程中發佈的php服務器站點代碼。它工作順利。 –

回答

-2

請檢查設備令牌是否有效。 對於哪個設備令牌,服務器發送推送通知。 也推送通知應檢查應用程序的背景模式。

如果以上全部正確,您將收到推送通知。

還要檢查在應用程序委託這兩個方法,並從您的iOS應用發送設備令牌服務器:

- (void)application:(UIApplication *)app didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken { 
     NSString *str = [NSString stringWithFormat:@"Device Token=%@",deviceToken]; 
str = [str stringByReplacingOccurrencesOfString:@" " withString:@""]; 
     NSLog(@"This is device token%@", str); 
    } 

    - (void)application:(UIApplication *)app didFailToRegisterForRemoteNotificationsWithError:(NSError *)err { 
     NSString *str = [NSString stringWithFormat: @"Error: %@", err]; 
     NSLog(@"Error %@",err);  
    } 
+0

我在我的問題中提到我有設備令牌並且註冊成功。 –

+0

然後使用設備令牌檢查服務器端代碼,以便將消息發送到設備。 –

+0

請仔細閱讀這個問題。 –

相關問題