Vraag:
Hoe kan ik de "Welkom, naam!" bannermelding voor Game Center?
Ben Brocka
2012-01-05 20:25:21 UTC
view on stackexchange narkive permalink

Met betrekking tot deze vraag heb ik ontdekt dat banners in iOS 5 vertraging veroorzaken. Het blijkt dat het bericht 'welkom, je bent aangemeld' in Game Center dit ook doet, en bij gelegenheid zal me verschillende keren onderbreken in een game als ik de app in- / uitschakel tijdens het spelen, aangezien deze zich herhaaldelijk aanmeldt / uitlogt.

Is er een manier om deze melding uit te schakelen terwijl Game Center ingeschakeld blijft? Ik heb geprobeerd de rechten voor bannermeldingen van Game Center in te trekken, maar de pop-up wordt nog steeds weergegeven.

Vier antwoorden:
Jason Salaz
2012-02-07 00:21:39 UTC
view on stackexchange narkive permalink

Die inlogbanner is een voorzien aspect van de Game Center API in de iOS SDK's, voor zover ik weet is er geen manier als ontwikkelaar om te voorkomen dat deze wordt geopend wanneer de Game Center-login is voltooid. Als gebruiker is er zeker geen manier om het uit te schakelen, omdat het deel uitmaakt van de gecompileerde broncode van de applicatie.

Merk echter op dat het niet de banner is die de vertragingen en het overslaan veroorzaakt. Het is eigenlijk het hele inlogproces bij Game Center. Mijn enige advies is wanneer je een game opent met Game Center-aanmeldingen, deze opent naar het eerste functionele scherm en gewoon de ~ 5-10 seconden wacht die nodig zijn om de Game Center-banner te onthullen. Nadat de banner is weergegeven en verdwenen, gaat u normaal verder en zou u niet verder worden beïnvloed.

Dat is zo ongeveer wat ik heb aangenomen
Het grappige is dat ik ergens was zonder connectiviteit ("Geen service" in de menubalk) en ik kreeg nog steeds de pop-up.
Helaas ken ik de Game Center API's niet zo goed, maar de 'Welkom'-banner kan verschijnen wanneer je je in het algemeen bij Game Center hebt geregistreerd. Online of niet. Dat wil zeggen dat de app geregistreerd is bij Game Center om gepast te reageren op prestaties, (gecachte) scoreborden, etc. Over het algemeen de Game Center opslag.
BenW
2014-07-30 13:22:20 UTC
view on stackexchange narkive permalink

Ja, het is mogelijk om de welkomstbanner van Game Center programmatisch te onderdrukken vanuit uw app, in ieder geval onder iOS 7. Mijn benadering is gebaseerd op een paar observaties:

  1. De banner wordt gepresenteerd als een extra UIWindow binnen uw UIApplication.
  2. Dit venster lijkt altijd te verschijnen bij index 1. (ervan uitgaande dat uw app maar één venster gebruikt.)
  3. De banner is 66 pixels hoog op iPad, 64 op iPhone.
  4. De banner bevat een subweergave van 42x42 pixels voor het Game Center-pictogram.
  5. Het is bekend wanneer de banner waarschijnlijk zal verschijnen. (dwz binnen een paar seconden na het aanmaken van een GKLocalPlayer-object bij het starten om de authenticatie te testen.)

U kunt dus eenvoudig de vensters van uw applicatie gedurende deze paar seconden herhaaldelijk pollen, wachtend tot het extra venster verschijnt . (Observeren van sleutelwaarden is waarschijnlijk de "juiste" manier om dit te doen, maar ik ben lui.) Als het venster verschijnt, test dan of het een subview-hiërarchie bevat zoals hierboven beschreven, wat aangeeft dat het waarschijnlijk de Game Center-banner is. Als dit het geval is, stelt u de alfa van het venster in op 0. Dat is alles.

Hier is een code die dit in mijn app doet. Ik roep deze methode onmiddellijk aan nadat ik heb geprobeerd de lokale speler te authenticeren, en hij roept zichzelf een paar seconden aan totdat hij de banner vindt (en verbergt), of anders een time-out:

  - (void) suppressGCBanner: (id) object {int osVersion = [[[UIDevice currentDevice] systemVersion] intValue]; if (osVersion! = 7) terugkeer; // alleen getest tegen iOS 7 statische int iter = 0; // probeer het 4 seconden, het duurt normaal gesproken ongeveer een seconde voordat de banner statisch verschijnt int origWindowCount = 0; NSArray * windows = [UIApplication sharedApplication] .windows; if (origWindowCount == 0) origWindowCount = (int) [windows count]; BOOL ipad = UI_USER_INTERFACE_IDIOM () == UIUserInterfaceIdiomPad; zweven bannerHeight = ipad? 66.0f: 64.0f; // GC-banner heeft hoogte 66 op iPad, 64 op iPhone als ([windows count] > origWindowCount) {
NSLog (@ "suppressGCBanner: extra venster gevonden, testen"); UIWindow * window = [windows objectAtIndex: 1]; // bij mijn testen staat de GC-banner altijd op index 1 voor (UIView * view in [window subviews]) {CGRect frame = view.frame; NSLog (@ "subview grootte:% f,% f", frame.size.width, frame.size.height); if (frame.size.height! = bannerHeight) doorgaan; voor (UIView * subview in [view subviews]) {CGRect frame = subview.frame; NSLog (@ "sub-subview grootte:% f,% f", frame.size.width, frame.size.height); if (frame.size.width == 42.0f && frame.size.height == 42.0f) {// Game Center-pictogram is 42x42 NSLog (@ "GameCenter-banner gevonden: hiding. iter =% i", iter); window.alpha = 0.0f; // maak het raam onzichtbaar! terugkeren; }}}} if (++ iter > 200) {NSLog (@ "suppressGCBanner: timeout, bailing"); terugkeren; } // ____ anders recurse [self performSelector: @selector (suppressGCBanner :) withObject: nil afterDelay: 0.02f];}  

Af en toe zie je een enkele pixel lijn flikkeren bovenaan het scherm voordat de banner wordt verborgen, maar over het algemeen lijkt deze methode goed genoeg te werken. Gebruik op eigen risico en geniet ervan!

Olaf
2013-01-20 06:18:43 UTC
view on stackexchange narkive permalink

Er lijkt een manier te zijn om Game Center uit te schakelen, maar het is niet duidelijk, of was voor mij niet.

Meld u af bij Game Center.

Als u dan een Game Center-game starten, wordt u gevraagd om opnieuw in te loggen op Game Center.

In plaats van in te loggen, drukt u op de knop Annuleren in de linkerbovenhoek. Verlaat vervolgens het spel en herhaal totdat u heb het spel geopend en de aanmelding bij Game Center drie keer geannuleerd.

Er verschijnt een nieuw dialoogvenster waarin u wordt gevraagd of u Game Centre wilt uitschakelen. Start het spel opnieuw en er verschijnen geen dingen uit Game Center meer.

Tot nu toe lijkt dit te gebeuren hebben voor mij gewerkt. De PITA heeft het voorlopig stil gehouden.

l'L'l
2012-01-07 03:18:40 UTC
view on stackexchange narkive permalink

Probeer dit:

  Instellingen > Meldingen > Game Center  

Daar zou je alle opties moeten zien met betrekking tot waarschuwingen, meldingen, enz. die u kunt wijzigen of volledig kunt uitschakelen.

Het bericht 'Welkom terug, ' dat wordt weergegeven wanneer een game inlogt bij Game Center, lijkt geen standaardbanner voor het Berichtencentrum te zijn (het ziet er om te beginnen niet zo uit) en wordt niet beïnvloed door deze instellingen; Ik heb GC-meldingen uitgeschakeld en dat bericht wordt nog steeds weergegeven.
Zoals djacobson zei en ik aangaf in de vraag, werken normale meldingsopties niet, dit bericht lijkt zijn eigen ding te zijn.


Deze Q&A is automatisch vertaald vanuit de Engelse taal.De originele inhoud is beschikbaar op stackexchange, waarvoor we bedanken voor de cc by-sa 3.0-licentie waaronder het wordt gedistribueerd.
Loading...