浏览器
cc.screen有几个接口用于处理全屏,这几个接口很容易引起document not active报错,播放全屏视频内部会调用该接口
如下面
/**
* exit the full mode.
* @method exitFullScreen
* @return {Boolean}
*/
exitFullScreen: function (element) {
if (element && element.tagName.toLowerCase() === "video") {
if (cc.sys.os === cc.sys.OS_IOS && cc.sys.isBrowser) {
element.webkitExitFullscreen && element.webkitExitFullscreen();
return;
}
else {
element.setAttribute("x5-video-player-fullscreen", "false");
}
}
return this._supportsFullScreen ? document[this._fn.exitFullscreen]() : true;
},
Web Api标准里面,document.exitFullscreen()返回的是一个Promise对象而非boolean。
https://developer.mozilla.org/en-US/docs/Web/API/Document/exitFullscreen
官方能否统一该接口的返回参数?
暂时的修改方式
cc.screen.$exitFullScreen = cc.screen.exitFullScreen;
cc.screen.exitFullScreen = function(){
let result = Promise.resolve( cc.screen.$exitFullScreen() );
result.catch( (err)=>{
cc.log(err);
} )
}
