2

AppNotify サービスを使用して、アプリにプッシュ通知を実装します。そのサービスの設定を完了するには、デバイス トークンを取得する必要があります。Appleのドキュメントのコードを使用してみました。シミュレーターでエラーが発生します(もちろん予想されます)。私のデバイスではエラーは発生しませんが、トークンも取得できません。どちらのデリゲート メソッドも呼び出されません。コードは次のとおりです (最初のビットは applicationDidFinishLaunching に入ります)。

    [[UIApplication sharedApplication] registerForRemoteNotificationTypes:(UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeSound | UIRemoteNotificationTypeAlert)];



- (void)application:(UIApplication *)app didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)devToken {
//const void *devTokenBytes = [devToken bytes];
//self.registered = YES;
//[self sendProviderDeviceToken:devTokenBytes]; // custom method
NSLog(@"Success");
NSLog(@"Token = %@", devToken);
}
- (void)application:(UIApplication *)app didFailToRegisterForRemoteNotificationsWithError:(NSError *)err {
    NSLog(@"Error in registration. Error: %@", err);
}

なぜこれが起こっているのですか?

ありがとう

4

2 に答える 2

2

一度、リモート通知はシミュレーターでは機能しないことを知っておく必要があります。

よろしく

于 2010-08-13T08:33:46.143 に答える
2

次のメソッドも追加します。

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo 
{
       for (id key in userInfo)
       {
             NSLog(@"key: %@, value: %@", key, [userInfo objectForKey:key]);
        }    
}

あなたが(あなたが示すように)正しいコードを書いていれば、上記の3つのメソッド(あなたが書いた2つと私が上に持っている1つ)の1つが呼び出されます。デバイスでエラーが発生しない場合は、didRegisterForRemoteNotificationsWithDeviceToken メソッドが呼び出されるまでしばらく待ちます (理想的には 10 秒ですが、それ以上かかる場合もあります)。よろしく。

于 2011-09-06T09:15:05.863 に答える