Skip to content
目录

Hummer API

Hummer全局API,其内置的环境变量可用于获取一些设备相关的信息,同时支持全局消息通知,和页面渲染等。支持客户端自定义往Hummer域中注入其他信息。

Hummer.env

内置环境变量。

属性名类型说明示例
platformstring平台类型'iOS' | 'Android' | 'Web'
osVersionstring平台系统版本号'14.0' | '10'
appVersionstringApp版本号'1.0'
appNamestringApp名字'Hummer'
statusBarHeightnumber状态栏高度(单位:dp或pt)44
safeAreaBottomnumberiOS安全区域高度(单位:dp或pt)(Android可忽略)34
deviceWidthnumber设备宽度(单位:dp或pt)414
deviceHeightnumber设备高度(单位:dp或pt)896
availableWidthnumber可用范围宽度(单位:dp或pt)414
availableHeightnumber可用范围高度(单位:dp或pt)852
scalenumber像素缩放比例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);
});