9 votos

¿Cómo puedo desactivar el "Bienvenido, Nombre!" banner de notificación para Game Center?

Como por esta pregunta he encontrado pancartas, a causa de la desaceleración en iOS 5, resulta que el "bienvenido, han sido firmados en el" Juego de Centro de mensaje hace esto también, y en ocasiones se interrumpe a mí varias veces en un juego si me interruptor in/out de la aplicación, mientras que jugar como los registros de estar en/en repetidas ocasiones.

Hay una manera de desactivar esta notificación, dejando Game Center habilitado? He intentado revocar el banner de notificación de derechos de Game Center pero el pop-up aparece aún.

4voto

Christopher Scott Puntos 665

Que inicio de sesión de la bandera es un aspecto del Juego del Centro de la API en el iOS Sdk, tan lejos como soy consciente de que no hay ninguna manera como un desarrollador para desactivar desde el apertura cuando el Centro de Juego de inicio de sesión completa. Como usuario, ciertamente no hay manera de desactivarlo, porque es parte de la aplicación del código fuente compilado.

Sin embargo, tenga en cuenta que no es el banner que está causando retrasos y salta. En realidad, es todo el proceso de inicio de sesión para Game Center. Mi único consejo es que al abrir un juego que tiene el Juego Centro de inicios de sesión, lo abre a la primera funcional de la pantalla, y sólo tiene que esperar la ~5-10 segundos que se necesitan para revelar el Centro de Juego de banner. Después de que el banner ha mostrado y desapareció, proceder normalmente y no debe ser afectado.

2voto

strager Puntos 41713

Parece que hay una manera de desactivar el Juego de Centro, pero no es obvio, o no era para mí.

La sesión de Juego del Centro.

Si a continuación, iniciar un Juego de Centro de juego aparecerá pidiéndole que ingrese en el Juego de Centro de nuevo.

En lugar de iniciar sesión, pulse el botón Cancelar en la esquina superior izquierda. A continuación, Salir del juego y repetir hasta que he abierto el juego y se cancela el Juego de acceso del Centro de tres veces.

Un nuevo cuadro de diálogo emergente preguntándote si deseas desactivar el Juego de Centro. Iniciar el juego de nuevo y no se nada de el Juego de Centro de cosas que iban apareciendo más.

Hasta el momento, parece que esto ha funcionado para mí. La PITA se ha mantenido en silencio por ahora.

2voto

BenW Puntos 111

Sí, es posible suprimir el Centro de Juego pancarta de Bienvenida mediante programación desde dentro de la aplicación, al menos en iOS 7. Mi enfoque se basa en un par de observaciones:

  1. El banner se presenta como un adicional UIWindow dentro de su UIApplication.
  2. Esta ventana siempre aparece en el índice 1. (suponiendo que su aplicación sólo utiliza una ventana.)
  3. La bandera es de 66 píxeles de alta en el iPad, 64 en el iPhone.
  4. La bandera contiene un 42x42 pixel subvista para el Centro de Juego de icono.
  5. Se sabe cuando la bandera es probable que aparezca. (es decir dentro de un par de segundos de la creación de un GKLocalPlayer objeto en el lanzamiento de prueba de autenticación).

Así que usted puede simplemente encuesta de la aplicación de windows varias veces a lo largo de estos pocos segundos, esperando a que el extra de la ventana a aparecer. (Clave-valor de la observación es probablemente la manera "correcta" de hacer esto, pero soy perezoso.) Cuando la ventana de muestra, prueba si contiene una subvista jerarquía, tal como se describió anteriormente, lo que indica que es probablemente el Juego de Centro de la bandera. Si es así, establece el alfa de la ventana a 0. Eso es todo.

Aquí está el código que realiza esta en mi aplicación. Yo llamo a este método inmediatamente después de intentar autenticar el jugador local, y se llama a sí mismo durante unos segundos hasta que se encuentra (y oculta) en el banner, o más veces:

- (void)suppressGCBanner:(id)object {
    int osVersion = [[[UIDevice currentDevice] systemVersion] intValue];
    if (osVersion != 7) return;  // only tested against iOS 7

    static int iter = 0;    // try for 4 seconds, typically takes about one second for banner to appear
    static int origWindowCount = 0;

    NSArray* windows = [UIApplication sharedApplication].windows;
    if (origWindowCount == 0) origWindowCount = (int)[windows count];

    BOOL ipad = UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad;
    float bannerHeight = ipad ? 66.0f : 64.0f;  // GC banner has height 66 on iPad, 64 on iPhone

    if ([windows count] > origWindowCount) {
        NSLog(@"suppressGCBanner: found extra window, testing");

        UIWindow* window = [windows objectAtIndex:1]; // in my testing, the GC banner is always at index 1

        for (UIView* view in [window subviews]) {
            CGRect frame = view.frame;
            NSLog(@"subview size: %f, %f", frame.size.width, frame.size.height);

            if (frame.size.height != bannerHeight) continue;

            for (UIView* subview in [view subviews]) {
                CGRect frame = subview.frame;
                NSLog(@"sub-subview size: %f, %f", frame.size.width, frame.size.height);

                if (frame.size.width == 42.0f && frame.size.height == 42.0f) { // Game Center icon is 42x42
                    NSLog(@"found GameCenter banner: hiding. iter = %i", iter);

                    window.alpha = 0.0f; // make the window invisible!

                    return;
                }
            }
        }
    }

    if (++iter > 200) {
        NSLog(@"suppressGCBanner: timeout, bailing");
        return;
    }

    // ____ otherwise recurse
    [self performSelector:@selector(suppressGCBanner:) withObject:nil afterDelay:0.02f];
}

De vez en cuando vas a ver un solo píxel de la línea de parpadeo en la parte superior de la pantalla antes de que la bandera está oculto, pero en general este método parece funcionar bastante bien. Utilice a su propio riesgo, y ¡a disfrutar!

-1voto

Jordan W. Puntos 1083

Intente esto:

Settings > Notifications > Game Center

Allí verás todas las opciones relacionadas con las alertas, notificaciones, etc. que usted puede cambiar o desactivar por completo.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X