Java-APNSフレームワークを使用して、iOSデバイスにプッシュ通知を送信しています。 (開発者のおかげで)非常にうまく動作し、すべてが正しく設定されたら私のデバイスに送信することができます。しかし、私は、失敗事例を適切に処理することを望みます。特定のケースのために受信されなければならないいくつかの文書化APNSのエラーコードがありますjava-apnsを使用してプッシュの問題を検出する
どのように私は失敗例のいくつかを作成するのでしょうか?私は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());
}
}
誰かがまだ答えを求めている場合に備えて質問を残しておきますが、代わりに[JavaPNS](http://code.google.com/p/javapns)を見ています。それは失敗事例の方がはるかに良いように思われ、最近のように先月更新されました。私は簡単にプッシュ通知を送信するだけでなく、失敗のケースを作成することができました。 java-apnsは1年以上も触れられていないようです。 – ShatyUT