Cocos2d-js 判断平台的两种方法

cocos2d-js 是跨平台引擎,程序要在不同的平台下运行,有时就要动态地判断平台,我暂时总结出两种方法:

1. 利用cc.sys.isNative布尔变量判断是否本地平台

1
2
3
4
5
6
7
8
9
10
11
12
13
14
if(cc.sys.isNative){
cc.log("本地平台");
if(cc.sys.isMobile){
cc.log("本地移动平台");
if(cc.sys.os == cc.sys.OS_ANDROID){
cc.log("本地Android平台");
}
if(cc.sys.os == cc.sys.OS_IOS){
cc.log("本地ios平台");
}
}
}else{
cc.log("Web平台");
}

2. 在main.js文件的cc.game.onStart加入 dump() 可log出平台信息(针对 Web 平台)

下面我们来看 Cocos-js 提供的 dump() 方法源码:

1
2
3
4
5
6
7
8
9
10
11
12
//log出平台信息:
sys.dump = function () {
var self = this;
var str = "";
str += "isMobile : " + self.isMobile + "\r\n"; //是否是移动native
str += "language : " + self.language + "\r\n"; //语言
str += "browserType : " + self.browserType + "\r\n"; //浏览器
str += "capabilities : " + JSON.stringify(self.capabilities) + "\r\n"; //性能:是否支持WebGL
str += "os : " + self.os + "\r\n"; //系统
str += "platform : " + self.platform + "\r\n";
cc.log(str);
}

运行结果如下:

1
2
3
4
5
6
7
Cocos2d-JS v3.0 RC3 
isMobile : false
language : zh
browserType : chrome
capabilities : {"canvas":true,"mouse":true,"keyboard":true,"accelerometer":true}
os : Windows
platform : 101

从上面log的信息可以在浏览器的console(浏览器F12)知道 dump() 方法可判断出引擎的版本、是否在移动平台、语言、输入设备和运行的系统环境等。