2014-12-03 23 views
8

iOS 8'den önce, bir ortam yürütücüsü bir UIWebView'dan tam ekrana geçtiğinde her zaman UIMoviePlayerControllerDidEnterFullscreenNotification bildirimi gönderildi. IOS 8'de bu gerçekleşmez ve bazıları bunun yerine AVPlayerItemBecameCurrentNotification bildirimini dinlemeyi önerdi. Bu WKWebView'dan gönderilmiş gibi görünmüyor. bildiriminin dinlenmesi, eklenen tüm pencereler (reklam ağları gibi öğeler dahil) için tetiklendiğinden çalışmaz (WKWebView Ortam Yürütücüsü tam ekran algılama

Alt satır, Bütün gece bunun üzerinde çalışıyorum ve anlayamıyorum. Bir videonun WKWebView ile tam ekranda açılıp açılmadığı nasıl belirlenir. Herhangi bir yardım takdir edilecektir.

Düzenleme: Onaylamak için boş bir proje oluşturdum. Bir UIWebView ve AVPlayerItemBecameCurrentNotification dinleyici eklendi ve bir video oynatıp tam ekrana girdiğinde tetiklendi. Bu UIWebView'ı bir WKWebView'a değiştirdim ve bu bildirim artık tetiklenmedi.

+0

başka bir pencere devraldığı zaman ben 'UIWindowDidBecomeKeyNotification' belirlenmesi için oldu bulabildiğim en iyi iş gibi görünüyor. Bu, banner reklamım oluşturulduğunda neyse ki ateş etmedi. Sonra bir "windowBecameKey" değişkeni ayarladı ve bunun için 'UIWindowDidBecomeHiddenNotification' üzerinde test ettim. Bunu biraz kırılgan hale getirebilecek tek hıçkırıklık, "UIWindowDidBecomeKeyNotification" ın tam ekran penceresinin gizlenmesinden hemen önce tekrar ateş etmesi. Eğer bir nedenden ötürü, sonradan patlarsa, muhtemelen bir şeyleri kırar. –

cevap

4

Bu geçici çözüm 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

Sadece aynısını yapmam gerek. Bu bildirimi https://stackoverflow.com/a/7955014/1271424 numaralı tüm yanıtlarda dinledim ve yeni pencere oluşturmayla ilgili bildirimler (_UIWindowContentWillRotateNotification) ve MPRemote (MPRemoteCommandTargetsDidChangeNotification) hakkında bildirimler dışında, tam ekran modu hakkında hiçbir bildirim yok. iPad üzerinde test

, 8.1.1