2

Apple Push Notification Service を使用して、iPhone アプリケーションから deviceToken を取得しようとしています。当分の間、サーバー側での実装はありません。APP Id を作成し、SSL 証明書を取得し、APN を使用してプロファイルをプロビジョニングし、呼び出しを行いました

- (void)applicationDidFinishLaunching:(UIApplication *)application {
//view init and add sub view to window
    [[UIApplication sharedApplication] registerForRemoteNotificationTypes:UIRemoteNotificationTypeAlert | UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeSound];
}

方法。アプリケーションを実行すると、プッシュ通知を許可するアクション ボックスがポップアップ表示されます (APN 登録の要求が機能していることを意味します) が、コールバックは実行されません。didRegisterForRemoteNotificationsWithDeviceTokenもdidFailToRegisterForRemoteNotificationsWithErrorも呼び出されていませんか? 誰でも問題を解決するのを手伝ってもらえますか? 以下は、参照用の私のコールバックです。

    - (void)application:(UIApplication *)app didFailToRegisterForRemoteNotificationsWithError:(NSError *)err {

            UIAlertView *myAlert = [[UIAlertView alloc] initWithTitle:@"APNClient" message:@"Entered into Error Method" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil];
            [myAlert show];
            [myAlert release];
            NSLog(@"Error in registration. Error: %@", err);

        }
- (void)application:(UIApplication *)app didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)devToken {
    UIAlertView *myAlert = [[UIAlertView alloc] initWithTitle:@"APNClient" message:@"Got the deviceToken..!" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil];
    [myAlert show];
    [myAlert release];        
}
4

4 に答える 4

3

アプリは次を使用する必要があります。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

いいえ

- (void)applicationDidFinishLaunching:(UIApplication *)application
于 2009-10-05T15:31:51.187 に答える
2

PUSH 通知を使用するには、ネットワーク (WIFI を使用している場合) でポート 5223 を開くか、それ以外の場合はセルラー データ接続が必要であることがわかりました。

ホーム ネットワークでも同じ問題が発生し、ワイヤレス ルーターでポートを手動で開かなければなりませんでした。

于 2010-12-21T16:33:20.297 に答える
0

私はこれと同じことを経験し、文字通り何時間もかけてこの問題の根底にたどり着きました. 最終的に、私の iPod touch は単に Apple に接続してデバイス トークンを取得できなかったのだろうと考えましたが、それはファイアウォールとは何の関係もありませんでした。代わりに、問題は、どこか 1970 にリセットされたデバイスのクロックと組み合わせて、ある種の (TLS?) 暗号化接続をセットアップすることにあるようです。

時間を更新すると、すべてが修正されました。これが誰かを助けることを願っています:)。

于 2011-09-12T15:46:32.830 に答える
-1

登録呼び出しを行った直後に(どこからでも)コールバックを取得する必要があると言うように、コールバックは問題ないようです。

これはばかげた質問のように思えますが、念のために言っておくと、デリゲート メソッドはアプリケーション デリゲート クラスにありますか?

もしそうなら、あなたのメソッドが呼び出されない理由がわかりません。そこに NSLog ステートメントが表示されますが、実際にエントリにブレークポイントを設定しようとしましたか? そして、シミュレーターではなく、デバイスでテストしていますよね?

于 2009-10-06T05:35:27.000 に答える