2012-09-05 10 views
6

Java-APNSフレームワークを使用して、iOSデバイスにプッシュ通知を送信しています。 (開発者のおかげで)非常にうまく動作し、すべてが正しく設定されたら私のデバイスに送信することができます。しかし、私は、失敗事例を適切に処理することを望みます。特定のケースのために受信されなければならないいくつかの文書化APNSのエラーコードがありますjava-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方法はまだ呼び出されます。私はこれが代わりにmessageSendFailedメソッドで終わるか、あるいはconnectionClosedになると思っていますが、どちらも呼び出されません。誰かがこの事をテストし、それを働かせたのですか?ここに私のクラスの例があります...私はScalaでこれを実際に行っていますが、私がJavaを投稿した場合、私はもっとうまくいくだろうと考えました。これが呼び出されると、「ABに送信されたメッセージ」が印刷されます。

私のコメントで述べたように
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

誰かがまだ答えを求めている場合に備えて質問を残しておきますが、代わりに[JavaPNS](http://code.google.com/p/javapns)を見ています。それは失敗事例の方がはるかに良いように思われ、最近のように先月更新されました。私は簡単にプッシュ通知を送信するだけでなく、失敗のケースを作成することができました。 java-apnsは1年以上も触れられていないようです。 – ShatyUT

答えて

5

は、私は代替としてJavaPNSに見て、これが使用するより良いフレームワークです。また、現在作業中です(転記の2日前にコミットしています)。java-apnsは2011年12月から更新されていません。

私は、java-apnsの使用を誰にでもJavaPNSの使用に置き換えることをお勧めしますiOSデバイスにプッシュ通知を送信しようとしています。受信したエラーパケットに反応し、その結果をアクセスしやすい方法で呼び出し元に渡します。

+1

逆は真であるようです(2014 for java-apns | 2012 for javaPNS) – Enigma

関連する問題