Hummer API
Hummer全局API,其内置的环境变量可用于获取一些设备相关的信息,同时支持全局消息通知,和页面渲染等。支持客户端自定义往Hummer域中注入其他信息。
Hummer.env
内置环境变量。
属性名 | 类型 | 说明 | 示例 |
---|---|---|---|
platform | string | 平台类型 | 'iOS' | 'Android' | 'Web' |
osVersion | string | 平台系统版本号 | '14.0' | '10' |
appVersion | string | App版本号 | '1.0' |
appName | string | App名字 | 'Hummer' |
statusBarHeight | number | 状态栏高度(单位:dp或pt) | 44 |
safeAreaBottom | number | iOS安全区域高度(单位:dp或pt)(Android可忽略) | 34 |
deviceWidth | number | 设备宽度(单位:dp或pt) | 414 |
deviceHeight | number | 设备高度(单位:dp或pt) | 896 |
availableWidth | number | 可用范围宽度(单位:dp或pt) | 414 |
availableHeight | number | 可用范围高度(单位:dp或pt) | 852 |
scale | number | 像素缩放比例 | 3 |
Hummer.notifyCenter
全局消息通知,支持Hummer代码和原生代码互发消息。
js
/**
* 设置消息监听事件
*
* @param event 事件名称
* @param callback 接收消息回调,value为消息内容
*/
addEventListener(event: string, callback: (value: Object) => void)
js
/**
* 取消消息监听事件
*
* @param event 事件名称
* @param callback 接收消息回调,addEventListener时的callback对象
*/
removeEventListener(event: string, callback: (value: Object) => void)
js
/**
* 发送消息
*
* @param event 事件名称
* @param value 消息内容
*/
triggerEvent(event: string, value: Object)
Hummer.render
渲染Hummer页面。
js
/**
* 渲染Hummer页面(每次调用都会清空之前的视图)
*
* @param view 视图对象
*/
render(view: View);
Hummer.loadScript
直接执行JS脚本
js
/**
* 直接执行JS脚本
*
* @param script 脚本字符串
* @return 脚本执行返回错误信息
*/
loadScript(script: string): HummerError;
Hummer.loadScriptWithUrl
执行URL对应的JS脚本。
js
/**
* 执行URL对应的JS脚本
*
* @param url 脚本URL
* @param callback 脚本执行回调
*/
loadScriptWithUrl(url: string, callback: (error: HummerError) => void);
HummerError
错误信息。
js
class HummerError {
errCode: number; // 错误码
errMsg: string; // 错误信息
}
示例
js
// 获取平台类型
let platform = Hummer.env.platform;
console.log('platform: ' + platform);
// 全局消息中心
let callback = (value) => {};
// 设置消息监听
Hummer.notifyCenter.addEventListener("event", callback);
// 取消消息监听
Hummer.notifyCenter.removeEventListener("event", callback);
// 发送消息
Hummer.notifyCenter.triggerEvent("event", {test: 1234});
// 渲染Hummer页面
Hummer.render(new View());
// 直接执行JS脚本
Hummer.loadScript('var a = 1; console.log(a);');
// 执行URL对应的JS脚本
var url = 'http://x.x.x.x:8000/Test.js'
Hummer.loadScriptWithUrl(url, (error) => {
console.log('errCode: ' + error.errCode + ', errMsg: ' + error.errMsg);
});