2012-03-26 10 views
2

Ich versuche, einen Anfragefluss in unserer Canvas-App zu erstellen, die reibungslose Anfragen verwendet, um das Senden von Anfragen im Vollbildmodus zu erlauben.Ermitteln Sie reibungslose Anfrage UI Popup

Das Problem, für das ich keine Lösung sehe, ist, wie man erkennt, wenn eine Anfrage gesendet wird, wird ein UI-Dialog angezeigt, und wann nicht. Wenn ich eine Anfrage speziell an einen oder mehrere Benutzer sende, und bei einer von ihnen noch keine reibungslosen Anfragen aktiviert sind, muss ich den Vollbildmodus beenden, damit das Dialogfeld der FB-Benutzeroberfläche angezeigt werden kann.

Wenn der Benutzer jedoch zuvor Anfragen gesendet und das reibungsfreie Kontrollkästchen aktiviert hat, müssen wir den Vollbildmodus nicht deaktivieren.

Woher weiß ich, ob ein UI-Dialogfeld angezeigt wird? Zuerst dachte ich, dass das hideFlashCallback verwendet werden könnte, aber es scheint, dass dies nur für Facebook-Elemente wie das Benachrichtigungsfeld ausgelöst wird, nicht für Dialoge, die die App selbst initiiert.

Vielen Dank im Voraus für jede Hilfe oder Ideen! Ich weiß, dass es Spiele auf FB gibt, die das richtig handhaben, aber ich kann nicht herausfinden, wie sie es machen.

Antwort

1

Soweit mir bekannt ist, gibt es keine Möglichkeit, dies über die API zu erkennen. Sie können es zwar im DOM erkennen, aber Sie würden sich mit FB-Updates durch nicht dokumentierte Funktionen aufbrechen.

Sie könnten versuchen, eine Zeitüberschreitung einzustellen, um den Vollbildmodus zu deaktivieren. Wenn Ihr Rückruf sofort eine Antwort erhält, können Sie ihn abbrechen. Sie müssen die Dauer des Timeouts abhängig davon, wie lange die API normalerweise benötigt, um den Callback in reibungslosen Anfragen durchzuführen, täuschen, aber Sie könnten wahrscheinlich mit 250 oder 500 Millisekunden arbeiten.

+0

Vielen Dank - guter Vorschlag! –

Verwandte Themen