Egret自适应微信浏览器

Egret游戏在微信内置浏览器中的自适应设置

作者 Fandy 日期 2015-11-30
Egret自适应微信浏览器

egret默认自带了分辨率自适应的几种应用模式,移动端最合适的是noBorder和showAll模式,noBorder已经能够很好的兼容大部分的屏幕,但是遇到微信浏览器,顶部的状态栏会占用一部分显示容器的高度,所以顶部会有一部分内容被遮住,这时候可以使用js的一些方法,动态计算出可视区域的高度,从而在载入舞台的时候,动态调整舞台高度,实现过程如下:

判断微信浏览器

判断微信浏览器
1
2
3
4
5
6
7
8
9
public static isWeiXin(): boolean {
var ua = window.navigator.userAgent.toLowerCase();
var microStr = "" + ua.match(/MicroMessenger/i);
if(microStr == "null") {
return false;
} else if(microStr == "micromessenger") {
return true;
}
}

计算浏览器高度

动态调整舞台高度
1
2
3
4
5
6
// 获取在微信中,舞台的高度
function getWeixinStageHeight(){
var vh = window.innerHeight * window.devicePixelRatio;
var vw = window.innerWidth * window.devicePixelRatio;
return GameConfig.gameWidth / (vw / vh);
}

以上两段代码,在初始化舞台的时候调用,舞台容器中使用动态布局,即可完美自适应微信浏览器。