0

QuickBlox で APNS メッセージ機能をテストしています。サンプル コードを使用し、ユーザー (「pushuser」) とパスワードを作成し、QuickBlox の指示に従って appdelegate.m のコードに認証基準を追加するシングル ユーザー オプションを使用しました (含まれているコードを参照してください)。アプリは正常にコンパイルされ、最初に iPhone にロードされたときに、アプリのプッシュ通知を許可することに関するポップアップが表示されました。通知領域で iPhone の設定を確認すると、アプリがその中にあり、通知の送信が許可されていることがわかります。QuickBlox 管理パネルに移動して、テストの単純なプッシュ通知を送信しようとすると。管理パネルの上部に「受信者がいません。少なくとも 1 人のユーザーが APNS (Apple Push) (SDK または REST API 経由) にサブスクライブする必要があります」というエラーが表示されます。私のQuikBloxアプリケーションID、AuthorizationKey と AuthorizationSecret はすべて正しく含まれています。これは、これらを必要とするアプリで他のことを実行できるためです。どんな助けでも大歓迎です。ありがとう!

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

    // Set QuickBlox credentials (You must create application in admin.quickblox.com)
    [QBSettings setApplicationID:xxxx];
    [QBSettings setAuthorizationKey:@"xxxxxx"];
    [QBSettings setAuthorizationSecret:@"xxxxxx"];



    [QBAuth createSessionWithDelegate:self];

    self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]  autorelease];

    // Show Splash
    self.splashController = [[[SplashController alloc]    initWithNibName:@"SplashViewController" bundle:nil] autorelease];
    self.window.rootViewController = (UIViewController*)self.splashController;
    [self.window makeKeyAndVisible];

    return YES;

    QBASessionCreationRequest *extendedAuthRequest =[QBASessionCreationRequest request];
    extendedAuthRequest.userLogin = @"pushuser";
    extendedAuthRequest.userPassword = @"pushuserpwd";

    [QBAuth createSessionWithExtendedRequest:extendedAuthRequest delegate:self];
}
#pragma mark -
#pragma mark QBActionStatusDelegate

    // QuickBlox queries delegate
    - (void)completedWithResult:(Result *)result{

        if(result.success) {
            // Create session result
            if([result isKindOfClass:QBAAuthSessionCreationResult.class]){
                // You have successfully created the session

                // Subscribe Users to Push Notifications
                [QBMessages TRegisterSubscriptionWithDelegate:self];

                // Subscribe User to Push Notifications result
            }else if([result isKindOfClass:QBMRegisterSubscriptionTaskResult.class]){
                // Now you can receive Push Notifications!
            }

        }else{
            NSLog(@"errors=%@", result.errors);
        }
    }
4

1 に答える 1

0

試していただきたいことの 1 つは、ログを確認することです

エラーはありますか?

NSLog(@"errors=%@", result.errors);

このクエリは [QBMessages TRegisterSubscriptionWithDelegate:self]; エラーが返される可能性があり、プッシュ通知へのサブスクリプションは成功しません。たとえば、無効なプロビジョニング プロファイルを使用している場合、失敗する可能性があります。

ありがとう

于 2013-05-02T08:03:46.533 に答える