2014-12-03 87 views
8

在iOS 8之前,媒體播放器在任何時候從UIWebView轉到全屏時都會發送UIMoviePlayerControllerDidEnterFullscreenNotification通知。在iOS 8中,這種情況不會發生,有些人建議您改用AVPlayerItemBecameCurrentNotification通知。這似乎不是從WKWebView發送的。監聽UIWindowDidBecomeVisibleNotification通知不起作用,因爲它是爲所有添加的窗口(包括廣告網絡等事物)而被解僱的WKWebView媒體播放器全屏檢測

底線,我一直在研究這一整夜,我似乎無法弄清楚如何確定是否用WKWebView全屏打開視頻。任何幫助,將不勝感激。

編輯:爲了確認,我創建了一個空白項目。添加了一個UIWebView和AVPlayerItemBecameCurrentNotification監聽器,它在我播放視頻時觸發,並且全屏顯示。我將該UIWebView切換到WKWebView,並且該通知不再被觸發。

+0

我能找到的是'UIWindowDidBecomeKeyNotification'確定何時另一個窗口接手最好的作品。幸運的是,這並沒有在我的橫幅廣告創建時觸發。然後我設置一個'windowBecameKey'變量並在'UIWindowDidBecomeHiddenNotification'上測試它。我看到的唯一的打嗝可能會使這個有點脆弱的是,UIWindowDidBecomeKeyNotification在全屏窗口隱藏之前再次觸發。如果出於某種原因,事後發生,它可能會破壞事情。 – 2014-12-11 17:42:45

回答

4

這種解決方法似乎在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

我只需要做同樣的事情。我聽到這個回答的所有通知https://stackoverflow.com/a/7955014/1271424,發現:除了有關創建新窗口(_UIWindowContentWillRotateNotification)和MPRemote(MPRemoteCommandTargetsDidChangeNotification)的通知外,根本沒有關於全屏模式的通知。

測試iPad上,8.1.1