0

アプリでプッシュ通知を使用したいです。一意のアプリ ID を作成し、プッシュ開発証明書を作成しました。また、その一意のアプリ ID を使用してプロビジョニング プロファイルを作成しました。デバイスを登録するためのコードをアプリケーションの終了メソッドに入れ、アプリが閉じて、プッシュ通知が有効になり、起動するとプッシュ通知が無効になります。ところで、現在、ApplicationDidFnishLaunchingメソッドを使用してプッシュ通知に登録しています。アプリは、アラートビューでプッシュ通知を許可するように求めているため、プッシュ通知に登録されていると思います。デバイス トークンが見つかりませんでした。アプリがメソッドを呼び出していません。ところで、このメソッドを ApplicationDelegate に記述しました。

- (void)application:(UIApplication *)app didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {
NSLog(@"devToken=%@",deviceToken);
[self alertNotice:@"" withMSG:[NSString stringWithFormat:@"devToken=%@",deviceToken] cancleButtonTitle:NSLocalizedString(@"OK",@"") otherButtonTitle:@""];
}

このメソッドにブレークポイントを設定しても、呼び出していません。iPhone 3GS をジェイルブレイクしました。デバイストークンを取得できない理由は誰にもわかります。

4

2 に答える 2

1

registerForRemoteNotificationTypes:アプリが Apple のサーバーに接続すると、非同期登録プロセスが開始されます。独自のコードが実行されます。これは、アプリが閉じられることを意味します。ほとんどの場合、登録は成功しませんが、成功したとしても、プロセスはもはや生きていapplication:didRegisterForRemoteNotificationsWithDeviceToken:ないため、呼び出すことができません。

アプリが起動するたびに通知を無効にするのではなく、着信通知を単に無視する必要がありapplication:didReceiveRemoteNotification:ます。アプリを閉じるときに特別なことをする必要はありません。通知を受信するために引き続き登録され、アプリが実行されていない場合、通知は無視されません。

于 2009-11-30T14:35:26.410 に答える
0

私の理解では、AppleはジェイルブレイクされたiPhoneからのトークンリクエストを無視します。言いたくないのですが、これがあなたの問題かもしれないと思います。

于 2009-11-30T23:53:00.770 に答える