2012-09-05 15 views
6

के साथ समस्याओं का पता लगाने के लिए जावा-एपीएन का उपयोग करना मैं आईओएस उपकरणों को पुश नोटिफिकेशन भेजने के लिए जावा-एपीएनएस फ्रेमवर्क का उपयोग कर रहा हूं। यह बहुत अच्छी तरह से काम करता है (डेवलपर के लिए धन्यवाद!) और जब भी सबकुछ ठीक से स्थापित होता है तो मैं अपने डिवाइस को भेज सकता हूं। हालांकि, मैं असफल मामलों को ठीक तरह से संभालने के लिए चाहता हूं। वहाँ कुछ दस्तावेज APNS त्रुटि कोड है कि कुछ मामलों के लिए प्राप्त किया जाना चाहिए:पुश

http://developer.apple.com/library/mac/#documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/CommunicatingWIthAPS/CommunicatingWIthAPS.html#//apple_ref/doc/uid/TP40008194-CH101-SW1

मैं असफल मामलों में से कुछ का निर्माण कैसे होगा? मेरे पास अपनी खुद की कक्षा है जो ApnsDelegate लागू करती है और मेरे प्रतिनिधि के साथ मेरी ApnsService ऑब्जेक्ट का निर्माण करती है। मैं अपने कॉल पेलोड के लिए कोई रिक्त स्ट्रिंग के साथ ही पुश करने के लिए में अमान्य टोकन गुजर की कोशिश की है:

service.push("ab", "") 

लेकिन मेरे ApnsDelegate की messageSent पद्धति अभी भी बुलाया जाता है। मैं उम्मीद करता हूं कि यह संदेश में समाप्त हो जाएगा इसके बजाय सैंडफेल विधि या शायद कनेक्शन बंद हो गया है लेकिन न ही कॉल किया जाता है। क्या किसी ने इस सामान का परीक्षण किया है और इसे काम करने के लिए प्राप्त किया है? यहां मेरी कक्षा का एक उदाहरण दिया गया है ... मैं वास्तव में इसे स्कैला में कर रहा हूं लेकिन मुझे लगा कि अगर मैं जावा पोस्ट करता हूं तो मुझे बेहतर भाग्य होगा। जब बुलाया जाता है, तो यह सिर्फ "एबी को भेजा गया संदेश" प्रिंट करेगा।

public class ApnsSender implements ApnsDelegate { 

    public void send(Notification Notification) { 
     ApnsService service = getApnsService(); 

     String payload = getPayload(notification); 

     service.push("ab", ""); 
    } 

    private ApnsService getApnsService() { ... } 

    private String getPayload(Notification notification) { ... } 

    public void messageSent(ApnsNotification message) { 
     String token = Utilities.toHexString(message.getDeviceToken()); 
     System.out.println("Message sent to " + token); 
    } 

    public void messageSendFailed(ApnsNotification message, Throwable e) { 
     System.out.println("Message failed"); 
    } 

    public void messageSent(DeliveryError e, Int messageIdentifier) { 
     System.out.println("Message closed with error code " + e.code()); 
    } 

} 
+0

अगर कोई अभी भी उत्तर चाहता है तो मैं वहां प्रश्न छोड़ दूंगा लेकिन अब मैं एक विकल्प के रूप में [जावापीएनएस] (http://code.google.com/p/javapns) देख रहा हूं। यह असफल मामलों के लिए बहुत बेहतर सक्षम लगता है और हाल ही में पिछले महीने अपडेट किया गया है। मैं आसानी से अपनी पुश नोटिफिकेशन भेज सकता हूं और एक असफल केस भी बना सकता हूं। ऐसा लगता है कि जावा-एपीएन एक साल में छुआ नहीं गया है। – ShatyUT

उत्तर

5

मेरी टिप्पणी में उल्लेख किया है, मैं एक विकल्प के रूप में देखा JavaPNS और इस का उपयोग करने के एक बेहतर रूपरेखा है। वर्तमान में यह भी पोस्ट किया जा रहा है (पोस्टिंग के समय 2 दिन पहले अंतिम प्रतिबद्धता) जहां java-apns दिसंबर 2011 से अपडेट नहीं किया गया है।

मेरा सुझाव है कि जावा-एपीएन का उपयोग किसी के लिए जावापीएनएस के उपयोग से बदला जा सकता है आईओएस उपकरणों को पुश नोटिफिकेशन भेजने की कोशिश कर रहा है। यह प्राप्त त्रुटि पैकेट पर प्रतिक्रिया करता है और परिणामों को कॉलर को आसानी से एक्सेस करने के लिए पास करता है।

+1

उलटा अब सच साबित होता है (जावा-एपीएनएस के लिए 2014 | जावापान्स के लिए 2012) – Enigma

संबंधित मुद्दे