在iOS 8之前,只要媒体播放器从UIWebView进入全屏,就会发送UIMoviePlayerControllerDidEnterFullscreenNotification
通知。在iOS 8中,这种情况不会发生,有些人建议您收听AVPlayerItemBecameCurrentNotification
通知。这似乎不是从WKWebView发送的。收听UIWindowDidBecomeVisibleNotification
通知无效,因为已针对所有添加的窗口(包括广告网络等内容)触发了
最重要的是,我整晚都在努力工作,我似乎无法弄清楚如何使用WKWebView全屏打开视频。任何帮助将不胜感激。
编辑:为了确认,我创建了一个空白项目。添加了一个UIWebView和AVPlayerItemBecameCurrentNotification
监听器,当我播放视频时它被触发并进入全屏状态。我将UIWebView切换到WKWebView,并且不再触发该通知。
答案 0 :(得分: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
}
}
答案 1 :(得分:0)
我只需要做同样的事情。我用这个答案https://stackoverflow.com/a/7955014/1271424听了所有通知,发现:除了有关创建新窗口的通知(_UIWindowContentWillRotateNotification)和MPRemote(MPRemoteCommandTargetsDidChangeNotification)之外,根本没有关于全屏模式的通知。
在iPad上测试,8.1.1