Events-系统事件
Events模块管理客户端事件,包括系统事件,如扩展API加载完毕、程序前后台切换等。
常量:
- “plusready”: 扩展API加载完成事件
- “pause”: 运行环境从前台切换到后台事件
- “resume”: 运行环境从后台切换到前台事件
- “netchange”: 设备网络状态变化事件
- “newintent”: 新意图事件
- “plusscrollbottom”: 窗口滚动到底部事件
- “error”: 页面加载错误事件
- “background”: 应用切换到后台运行事件
- “foreground”: 应用切换到前台运行事件
- “trimmemory”: 应用需要清理内存事件
- “splashclosed”: 应用启动界面已关闭事件
方法:
- addEventListener: 添加事件监听函数
回调方法:
- EventTrigCallback: 事件触发回调函数
- ErrorEventTrigCallback: 页面加载错误事件回调函数
EventTrigCallback
事件触发回调函数
void onTrig(){
// Event trig code
}
说明:
指定事件触发时的回调函数,在指定的事件已经发生时调用。
参数:
无
返回值:
void : 无
ErrorEventTrigCallback
页面加载错误事件回调函数
void onErrorTrig(Event event){
// Event trig code
var url = event.url; // 加载错误的页面路径,API中传入的url值
var href = event.href; // 加载错误的页面完整路径,通常以“file://”开头的路径
}
说明:
当Webview窗口加载页面失败后打开错误页面时触发此事件。
参数:
- event: ( Event ) 可选 加载页面失败信息
可通过event.url(String类型)获取加载页面的url值,如“./test/html”; 可通过event.href(String类型)加载错误的页面完整路径,包括完整的协议头,如
Android平台file:///storage/sdcard0/Android/data/io.dcloud.HBuilder/.HBuilder/apps/HBuilder/www/test.html
,
iOS平台file:///var/mobile/Containers/Data/Application/757966CF-345C-4348-B07F-EEF83CF9A369/Library/Pandora/apps/HBuilder/www/test.html
。
返回值:
void : 无
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
<meta name="HandheldFriendly" content="true" />
<meta name="MobileOptimized" content="320" />
<title>Hello H5+</title>
<script type="text/javascript">
if (window.plus) {
if (document.body) {
outLine(currentTimeString() + " HTML5 Plus已准备");
} else {
document.addEventListener("DOMContentLoaded", function () {
outLine(currentTimeString() + " HTML5 Plus已准备");
}, false);
}
} else {
document.addEventListener("plusready", function () {
outLine(currentTimeString() + " HTML5 Plus已准备");
}, false);
}
document.addEventListener("pause", function () {
outLine(currentTimeString() + " 应用从前台切换到后台");
}, false);
document.addEventListener("resume", function () {
outLine(currentTimeString() + " 应用从后台切换到前台");
}, false);
document.addEventListener("netchange", function () {
var types = {};
types[plus.networkinfo.CONNECTION_UNKNOW] = "未知";
types[plus.networkinfo.CONNECTION_NONE] = "未连接网络";
types[plus.networkinfo.CONNECTION_ETHERNET] = "有线网络";
types[plus.networkinfo.CONNECTION_WIFI] = "WiFi网络";
types[plus.networkinfo.CONNECTION_CELL2G] = "2G蜂窝网络";
types[plus.networkinfo.CONNECTION_CELL3G] = "3G蜂窝网络";
types[plus.networkinfo.CONNECTION_CELL4G] = "4G蜂窝网络";
outLine(currentTimeString() + " 切换网络:" + types[plus.networkinfo.getCurrentType()]);
}, false);
document.addEventListener("newintent", function () {
outLine(currentTimeString() + " 从第三方应用启动:" + plus.runtime.arguments);
}, false);
function currentTimeString() {
var d = new Date();
return d.getHours() + ":" + d.getMinutes() + ":" + d.getSeconds() + "." + d.getMilliseconds() + " - ";
}
</script>
</head>
<body>
<header id="header">
<div class="nvbt iback" onclick="back()"></div>
<div class="nvtt">Events</div>
<div class="nvbt idoc" onclick="openDoc('Events Document','/doc/events.html')"></div>
</header>
<div id="dcontent" class="dcontent">
<br />
<p class="des">按“HOME”键切换应用触发“pause”和“resume”事件,在设置中改变网络配置触发“netchange”事件。</p>
<br />
</div>
<div id="output">
Events模块管理客户端事件,包括系统事件,如扩展API加载完毕、程序前后台切换等。<br />
</div>
</body>
</html>