2011-07-19 8 views
1

私はgrailsアプリを持っており、java-apns 0.1.5 jarを使っています!私はそれから私のアプリを既にアンインストールしているデバイスキーを持っているので、私の質問は、私はAPIからデバイスがもう有効ではないという同じフィードバックを受け取るべきですか? 私のコードは以下の通りです:grails app、java-apnsを使用

apnsService = APNS.newService() 
     .withCert(pathToCertificate, password) 
     .withFeedbackDestination("feedback.sandbox.push.apple.com",2196) 
     .withSandboxDestination() 
     .build(); 

apnsService.start(); 

Map<String, Date> inactiveDevices = apnsService.getInactiveDevices(); 
log.debug inactiveDevices 

..... 

思いは、変数inactiveDevicesは常に空である、ということです!どうして?デバイスからアプリをアンインストールするとどうなりますか?私はいくつかクライアント(デバイス)の側で考えることが欠けていますか?

答えて

2

サンドボックスの宛先を使用している場合、フィードバックサービスでは の情報が正しく表示されない場合があります。これは既知の回避策と既知のバグです、 は、「サンドボックス」のAPNフィードバックサーバから、おそらく バグを問題が来るmailing list thread

をご確認ください。誰もが同じ問題を抱えている場合は、ここに解決策は以下のとおりです。

関連するプロビジョニング を作成し、ダウンロードする新しいXcodeプロジェクトを作成し、プロファイル、および を呼び出すことで、開発のプッシュを有効に 通知、プログラムのポータルでダミーのアプリIDを作成します。開始時にregisterForRemoteNotificationTypesメソッド。お使いの端末にダミーの アプリをインストールします。この時点で、2つのDEVELOPMENT アプリが端末で実行されている必要があります。元のアプリとダミーアプリです。プッシュ通知を受信するには、 の両方を登録する必要があります。 元のアプリをアンインストールし、そのアプリにプッシュ通知を送信してみます。フィードバックサービス を呼び出すと、データが返されます。

サンドボックスフィードバックサーバーでは、動作するには同じiPhoneに登録された2つの開発アプリ が必要です。この操作は生産段階に必要な ではなく、 "Production" APNs Feedback サーバーが正常に動作します。

プロダクションサーバーでのフィードバックのテストに切り替えることをお勧めします。 運用サーバーでテストするか、回避策を使用してください。

0
Hello Guys i have done push using grails APNS also with simple java lib. 

1. With Grails : here is code snippet for APNS using grails 

Hello Guys i have done push using grails APNS. 
there are one Important point to remember 
1. Proper apple certificate, Apple approved.: Apple approve certificate after 24 hours. 
here is my code 
1. in config.groovy 
environments { 
development { 
apns { 
pathToCertificate = "/Users/sarbogast/Desktop/APNs_development_certificates.p12" 
password = "password" 
environment = "sandbox" 
} 
} test { 
apns { 
pathToCertificate = "/usr/local/myapp/APNs_development_certificates.p12" 
password = "password" 
environment = "sandbox" 
} 
} production { 
apns { 
pathToCertificate = "/usr/local/myapp/APNs_production_certificates.p12" 
password = "password" 
environment = "production" 
} 
} 
}2. i create a service and here is my service class code def sendMessageToDevices() { List<string> aa = new ArrayList<string>() aa.add("Testing") def payload = APNS.newPayload() .badge(1) .localizedKey("key") .localizedArguments(aa) .sound("default") log.error(payload.length()) if (payload.isTooLong()){ log.info("Message is too long: " + payload.length()) } try { apnsService.testConnection() apnsService.push("Device token here", payload.build()) } catch (Exception e) { log.error("Could not connect to APNs to send the notification"+e.getMessage()) } } 
here "key" is any message which will popup on device push 
3. i called this method by controller method.. 
関連する問題