遇坑情景
在項目中有一個使用WKWebView來加載新聞頁面的情況,在一般的文字加圖片的新聞當中,運行情況良好锁保,但是突然發(fā)現(xiàn)有一些新聞頁面內(nèi)含有視頻薯酝。在點擊播放視頻播放的時候,視頻會自動全屏播放(這個不知道到是前端還是客戶端的原因)爽柒,退出全屏后發(fā)現(xiàn)狀態(tài)欄消息不見了吴菠,導(dǎo)航欄也上移了20個像素。
經(jīng)過度娘后看到了一個解決方案浩村,不過有一定時間了做葵,并且結(jié)合自己的狀況做了一些修改。
解決思路
狀態(tài)欄是在視頻全屏播放的時候被隱藏的穴亏,我們要做的就是在退出視頻全屏播放的時候蜂挪,把狀態(tài)欄取消隱藏。因此我們需要找到監(jiān)聽嗓化,視頻退出全屏時的方法棠涮。
視頻全屏播放時的視圖層級
視圖層級
在這個視圖層級中我們可以看到,當我們播放webView中的視頻的時候刺覆,會進入全屏播放,系統(tǒng)會增加一個UIWindow層級严肪,然后在該層級上增加一個AVPlayerviewController播放器,這里我們很難獲得或者監(jiān)聽到這個播放器,但是我們可以監(jiān)聽這個新增的UIWindow谦屑。
代碼
//監(jiān)聽UIWindow顯示
[[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(beginFullScreen) name:UIWindowDidBecomeVisibleNotification object:nil];
//監(jiān)聽UIWindow隱藏
[[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(endFullScreen) name:UIWindowDidBecomeHiddenNotification object:nil];
-(void)endFullScreen{
NSLog(@"退出全屏");
[[UIApplication sharedApplication]setStatusBarHidden:false animated:false];
}
說明
播放webView內(nèi)的視頻的時候驳糯,視頻會自動強制的全屏播放(前面已經(jīng)提及,不清楚是Html的原因氢橙,還是webview的設(shè)置問題酝枢,了解的朋友可以解析一下。)全屏播放的時候悍手,會增加一個UIWindow層帘睦,由于狀態(tài)欄的隱藏是自動的袍患,所以我只需要監(jiān)聽視頻退出全屏,也就是UIWindow隱藏的時候竣付,把狀態(tài)欄取消隱藏诡延!