2014-12-03 12 views
8

Vor iOS 8 wurde die Benachrichtigung UIMoviePlayerControllerDidEnterFullscreenNotification immer gesendet, wenn ein Medienplayer von einem UIWebView zum Vollbildmodus ging. In iOS 8 geschieht dies nicht und einige haben vorgeschlagen, stattdessen auf die Benachrichtigung AVPlayerItemBecameCurrentNotification zu hören. Dies scheint nicht von WKWebView gesendet zu werden. Das Abhören für die UIWindowDidBecomeVisibleNotification Benachrichtigung funktioniert nicht, da es für alle hinzugefügten Fenster ausgelöst wird (einschließlich Dinge wie Werbenetzwerke)WKWebView Media Player Vollbilderkennung

Fazit, ich habe die ganze Nacht daran gearbeitet und ich kann nicht scheinen, herauszufinden wie man erkennt, ob ein Video im Vollbildmodus mit einem WKWebView geöffnet wurde. Jede Hilfe wäre willkommen.

Bearbeiten: Um zu bestätigen, habe ich ein leeres Projekt erstellt. Ich habe einen UIWebView und den Listener AVPlayerItemBecameCurrentNotification hinzugefügt und er wurde ausgelöst, als ich ein Video spielte und es im Vollbildmodus erschien. Ich habe dieses UIWebView zu einem WKWebView gewechselt und diese Benachrichtigung wurde nicht mehr ausgelöst.

+0

Die besten finde ich die 'UIWindowDidBecomeKeyNotification' zur Bestimmung war, konnte zu arbeiten, wenn ein anderes Fenster übernimmt. Dies hat glücklicherweise nicht ausgelöst, als meine Banneranzeige erstellt wurde. Ich habe dann eine 'windowBecameKey'-Variable gesetzt und auf der 'UIWindowDidBecomeHiddenNotification' dafür getestet. Der einzige Schluckauf, den ich sah, der dies ein wenig zerbrechlich machen könnte, ist, dass "UIWindowDidBecomeKeyNotification" erneut ausgelöst wird, kurz bevor das Vollbildfenster ausgeblendet wird. Wenn es aus irgendeinem Grund danach feuert, würde es wahrscheinlich Dinge brechen. –

Antwort

4

Diese Problemumgehung scheint auf iOS8 & iPhone 6

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

    ... 

    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(windowBecameHidden:) name:UIWindowDidBecomeHiddenNotification object:nil]; 

    return TRUE; 
} 

- (void)windowBecameHidden:(NSNotification *)notification { 

    UIWindow *window = notification.object; 

    if (window != self.window) { // Not my own window: assuming the video window was hidden, maybe add some more checks here. 

      // Add code here 
    } 
} 
0

Ich muss nur das gleiche tun. Ich habe alle Benachrichtigungen mit dieser Antwort https://stackoverflow.com/a/7955014/1271424 angehört und festgestellt: Es gibt keine Benachrichtigungen über den Vollbildmodus, außer Benachrichtigungen über das Erstellen eines neuen Fensters (_UIWindowContentWillRotateNotification) und über MPRemote (MPRemoteCommandTargetsDidChangeNotification).

auf iPad getestet, 8.1.1