其他说明
1. 关于第三方地图
Section titled “1. 关于第三方地图”LayaNative底层渲染使用OpenGL ES渲染,使用android的GLSurfaceView控件和iOS的GLKView控件,所以无法支持第三方地图,如百度地图。
2. 关于文件格式
Section titled “2. 关于文件格式”项目中的文本格式文件(例如:ini、xml、html、json、js等)都必须是utf8编码格式,因为iOS设备不支持非utf8格式编码的文件。
3. 日志级别
Section titled “3. 日志级别”LayaNative底层LOG分为五种:
enum class LogType{ Debug, Info, Warn, Error, Fatal,};每种日志对应的日志级别如下:
enum class LogLevel{ Debug = 5, // 最详细 - 调试信息 Info = 4, // 一般信息 Warn = 3, // 警告 Error = 2, // 错误 Fatal = 1, // 致命错误 Close = 0, // 关闭所有日志};日志级别说明:
- 数值表示”日志详细程度”,数值越大输出越详细
- 设置
g_nLogLevel = n时,输出所有LogLevel值 <= n 的日志 - 默认值为 5(Debug),表示输出所有级别的日志
在js脚本中,开发者可以通过以下函数设置日志级别,默认值为5:
if (window.conch){ // 日志级别设置说明: // 值为0:关闭所有日志输出 // 值为1:只输出 Fatal(致命错误)日志 // 值为2:输出 Fatal + Error(错误)日志 // 值为3:输出 Fatal + Error + Warn(警告)日志 // 值为4:输出 Fatal + Error + Warn + Info(信息)日志 // 值为5:输出所有日志,包括 Debug(调试)日志(默认值) // // 过滤规则:值为n时,输出所有 LogLevel <= n 的日志 window.conchConfig.setLogLevel(2);}Tips 1、conch只能LayaNative环境下调用,在网页版本中是没有conch定义的,所以需要判断一下是否存在。
4.关于iOS对接微信
Section titled “4.关于iOS对接微信”在iOS平台下对接微信SDK,微信1.77版本以后需要增加-Objc的参数,微信的官方文档中默认让增加-Objc -all_load,但是这样会导致编译报错。
遇到到这种情况可以把参数变成 -Objc -force_load libWeChatSDK.a,配置后,如图1所示:

5. 关于iOS模拟器
Section titled “5. 关于iOS模拟器”LayaNative支持iOS模拟器,但是由于模拟器运行效率比较低,建议开发者使用iOS真机调试。
6. 获取各种信息
Section titled “6. 获取各种信息”| 函数名称 | 函数说明 | 返回值说明 | 备注 |
|---|---|---|---|
| getTotalMem() | 获得运行设备总内存 | 单位为KB | |
| getUsedMem() | 获得当前应用程序占用的内存 | 单位为KB | 返回值不太准确,但是可以作为参考 |
| getAvalidMem() | 获得可用的内存 | 单位为KB | 返回值不太准确,但是可以作为参考 |
| getNetworkType() | 获得网络状态 | 返回int值,NET_NO = 0;NET_WIFI = 1;NET_2G = 2;NET_3G = 3;NET_4G = 4;NET_UNKNOWN=5 | |
| getRuntimeVersion() | 获得Runtime的版本 | 返回值是一个字符串,格式为平台-conch6-release-版本号,类似ios-conch6-release-3.4.0、android-conch6-release-3.4.0。平台前缀有ios、android、window、ohos、linux五种 | |
| getAppVersion() | 获得iOS-App的版本号 | 返回字符串 1.1 | iOS-app的版本号,通过这个版本号,可以做APP的更新提示。 |
| getAppLocalVersion() | 获得iOS-App的Local版本号 | 返回字符串1.2 | iOS-app的版本号,通过这个版本号,可以做APP的更新提示。 |
这些函数都属于conchConfig类的函数,调用实例:
if (window.conch){ window.conchConfig.getRuntimeVersion();}Tips 1、conch只能LayaNative环境下调用,在网页版本中是没有conch定义的,所以需要判断一下是否存在。
7. 屏蔽项目中报错弹框
Section titled “7. 屏蔽项目中报错弹框”项目运行过程中有时会弹出一些错误的提示,这些提示都是项目中有代码写错了。我们的建议是解决掉这些错误弹框里边的错,如果实在是解决不掉再去屏蔽。
是否显示报错弹框在IDE项目设置—> 杂项—> 弹窗显示全局错误选项进行设置,如图2所示:

8. 引擎初始化或加载启动脚本过程中的异常处理
Section titled “8. 引擎初始化或加载启动脚本过程中的异常处理”在LayaNative版本中,当引擎初始化、加载启动脚本过程中,如果发生异常(如网络不稳定),引擎会自动调用到window.onLayaInitError(error)函数,该函数默认在config.js中定义,代码如下:
window.onLayaInitError = function(e){ console.log("onLayaInitError error=" + e); alert("加载游戏失败,可能由于您的网络不稳定,请退出重进");}开发者可以根据自己需求,修改报错信息和报错方式。
9. conch.getWindowInfo
Section titled “9. conch.getWindowInfo”Version >= LayaAir 3.4 类似微信小游戏接口,获取窗口信息,包括屏幕尺寸、窗口尺寸、状态栏高度、安全区域等信息。
返回一个对象,包含以下属性:
| 属性 | 类型 | 说明 |
|---|---|---|
| pixelRatio | number | 设备像素比 |
| screenWidth | number | 屏幕宽度,单位px |
| screenHeight | number | 屏幕高度,单位px |
| windowWidth | number | 可使用窗口宽度,单位px |
| windowHeight | number | 可使用窗口高度,单位px |
| statusBarHeight | number | 状态栏的高度,单位px。LayaNative中没有小游戏中的状态栏,这里返回的是安全区域的顶部内边距(safeTop),与safeArea.top一致 |
| safeArea | Object | 在竖屏正方向下的安全区域。部分机型没有安全区域概念,也不会返回 safeArea 字段,开发者需自行兼容。 |
| safeArea.left | number | 安全区域左上角横坐标 |
| safeArea.right | number | 安全区域右下角横坐标 |
| safeArea.top | number | 安全区域左上角纵坐标 |
| safeArea.bottom | number | 安全区域右下角纵坐标 |
| safeArea.width | number | 安全区域的宽度,单位逻辑像素 |
| safeArea.height | number | 安全区域的高度,单位逻辑像素 |
| screenTop | number | 窗口上边缘的y值 |
if (window.conch){ const windowInfo = window.conch.getWindowInfo();
console.log("设备像素比:", windowInfo.pixelRatio); console.log("屏幕宽度:", windowInfo.screenWidth); console.log("屏幕高度:", windowInfo.screenHeight); console.log("窗口宽度:", windowInfo.windowWidth); console.log("窗口高度:", windowInfo.windowHeight); console.log("状态栏高度:", windowInfo.statusBarHeight); console.log("窗口上边缘y值:", windowInfo.screenTop); if (windowInfo.safeArea) { console.log("安全区域:", JSON.stringify(windowInfo.safeArea)); }}10. conch.getDeviceInfo
Section titled “10. conch.getDeviceInfo”Version >= LayaAir 3.4
类似微信小游戏接口,获取设备基础信息,包括设备品牌、型号、操作系统等信息。
返回一个对象,包含以下属性:
| 属性 | 类型 | 说明 |
|---|---|---|
| abi | string | 应用二进制接口类型(仅 Android HarmonyOS 支持) |
| deviceAbi | string | 设备二进制接口类型(仅 Android HarmonyOS 支持) |
| brand | string | 设备品牌 |
| model | string | 设备型号。新机型刚推出一段时间会显示unknown,会尽快进行适配。 |
| system | string | 操作系统及版本 |
| platform | string | 客户端平台,合法值见下表 |
| cpuType | string | 设备CPU型号(仅 Android 支持) |
| memorySize | string | 设备内存大小,单位MB |
platform 合法值:
| 值 | 说明 |
|---|---|
| ios | iOS 平台(包含 iPhone、iPad) |
| android | Android 平台 |
| ohos | HarmonyOS 手机端平台 |
| ohos_pc | HarmonyOS PC平台 |
| windows | Windows 平台 |
| linux | Linux 平台 |
if (window.conch){ const deviceInfo = window.conch.getDeviceInfo();
console.log("应用二进制接口类型:", deviceInfo.abi); console.log("设备二进制接口类型:", deviceInfo.deviceAbi); console.log("设备品牌:", deviceInfo.brand); console.log("设备型号:", deviceInfo.model); console.log("操作系统:", deviceInfo.system); console.log("客户端平台:", deviceInfo.platform); console.log("CPU型号:", deviceInfo.cpuType); console.log("设备内存:", deviceInfo.memorySize, "MB");}