23

このチュートリアルを使用して、プッシュ通知用のサンプル PushTest アプリを作成しました。

上記のチュートリアルを使用して、「PushTest」がプッシュ通知を(正確に1回)送信したいというメッセージを受け取りました。その後、iPhoneからアプリを削除し、iPhoneを再起動しますが、同じメッセージを再度取得できません。

スクリプト sample.php を実行し (提案された変更を更新)、「APNS に接続しました」および「メッセージ送信」というメッセージを受け取りました。

しかし、私は単一のプッシュ通知を受け取りませんでした。

どこが間違っているのか教えてください。
または、プッシュ通知を受信するために何を試しますか。

4

8 に答える 8

6

プッシュ通知対応のプロビジョニング プロファイルを使用していることを確認してください。次に、トークンをサーバーに送信しているかどうかを確認します。

于 2013-04-22T05:37:08.797 に答える
2

私は同じチュートリアルに従いました。

アプリが通知センターにリストされていること、およびアラートの種類が「なし」ではなく「何でも」であることを確認してください。

3つの条件で通知を確認する必要があります。

アプリが開いているとき、バックグラウンド、閉じているとき。

そのためには、これらのメソッドをチェックする必要があります

// To Register your device token
- (void)application:(UIApplication*)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData*)deviceToken

//If your app is not able to register
- (void)application:(UIApplication*)application didFailToRegisterForRemoteNotificationsWithError:(NSError*)error
{}

//Your app receives push notification.
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
{

    UIApplicationState state = [application applicationState];

    // If your app is running
    if (state == UIApplicationStateActive)
    {

        //You need to customize your alert by yourself for this situation. For ex,
        NSString *cancelTitle = @"Close";
        NSString *showTitle = @"Get Photos";
        NSString *message = [[userInfo valueForKey:@"aps"] valueForKey:@"alert"];
        UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@""
                                                            message:message
                                                           delegate:self
                                                  cancelButtonTitle:cancelTitle
                                                  otherButtonTitles:showTitle, nil];
        [alertView show];
        [alertView release];

    }
    // If your app was in in active state
    else if (state == UIApplicationStateInactive)
    {
    }
}
于 2013-04-22T06:17:26.980 に答える
1

正しいプロビジョニング プロファイルを選択していることを確認してくださいプロビジョニングプロファイル

アプリが最小化されていることを確認します。アプリが最小化されていない場合

 - (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
{
    NSLog(@"info %@", userInfo);
}

問題に関するその他の有用な情報

TESTING プッシュには、 APN Tester Freeを使用できます。 注意:トークン WITH スペースを挿入してください。

于 2016-06-30T13:17:33.197 に答える
1

アプリケーションの通知がオンになっているかどうかをデバイスの設定で確認し、通知センターで通知の種類が「なし」でないことを確認してください。

于 2013-04-22T06:20:35.370 に答える
0

私は何も得ていませんでした:

func application(_ application: UIApplication, didReceiveRemoteNotification userInfo: [AnyHashable : Any])

しかし、私のコンパイラはブレークポイントで停止しました

func application(_ application: UIApplication, didReceiveRemoteNotification userInfo: [AnyHashable : Any], fetchCompletionHandler completionHandler: @escaping (UIBackgroundFetchResult) -> Void)
于 2017-04-22T14:40:25.107 に答える