cocos creator 如何强制判断环境为web mobile?

目前有一个h5项目,用cocos creator 1.5.2 写的。在大多数安卓和ios设备上显示是正常的。在某些ios设备(8.x/9.x)上,页面显示为pc版的web页面。找不到啥原因。有没有办法强制让它显示为web mobile模式?

你是预览时出现的这个问题?

在ios设备上看,出问题的。。。而且奇怪的是cocos logo页和我自制的loading页没问题。。。就是login页有问题。
在ios 10.x设备和安卓设备上都是正常的

你是预览时出现的这个问题?

不是预览啊。。。直接build完后,提交到http服务器。。。然后在ios设备上的微信浏览器访问

刚测试了一下,这个ios设备上的Safari浏览器,访问我的login页面也有问题。。。

你看看发布后的文件夹,里面有没有 pc 版的 web 页面?如果没有,就是你自身环境问题了,估计是浏览器有缓存。

我找到原因了,是onload函数里cvs.fitWidth = true;导致的。。。。。

onLoad: function () {
if(!cc.sys.isNative && cc.sys.isMobile){
var cvs = this.node.getComponent(cc.Canvas);
cvs.fitHeight = true;
cvs.fitWidth = true;
}

把cvs.fitWidth = true;去掉,就ok。。。。这是为什么??????而且只在Ios 8.x/9.x有问题

我不懂你所谓的问题是什么……

问题:在ios 8/9设备上,微信h5游戏页面显示成PC版面(超大)。安卓和ios 10设备没问题。

重现环境:ios 8/9 + 微信

发现:是因为cc.Canvas.fitHeight 和 cc.Canvas.fitWidth 都设置成了true,从而导致 ios 8/9设备显示适配失败。如果我只设置cc.Canvas.fitHeight=true,而fitWidth = false,此时ios8/9设备适配正常了(宽和高都是手机的屏幕大小了)

我的疑问是:
由于项目需要,我们必须同时设置fitHeight、fitWidth为true。
如何在Ios 8/9环境下,能够让我的h5页面在微信上显示正常?

@panda 看下

又要fixWidth 又要fixHeight 不会拉伸或压缩么? 这样会不会很奇怪

当然不奇怪。你试一下效果就知道了