系统事件管理(Events) ---- HTML5+
模块:events
Events模块管理客户端事件,包括系统事件,如扩展API加载完毕、程序前后台切换等。
比如说:网络的链接的和断开这种事件,系统从前台走到后台这种事件;
不包括:点击和滑动页面事件;
应用场景:
等待事件完成:例如 plusready();
应用从前台传入后台时停止一些占用资源的服务:和服务器做交互的时候;
应用从后台转到前台时开启一些服务;
断网时提示用户:网络不给力,断网了;可以通过device 获取网络的状态;
加载错误时提示用户;
document.addEventListener(event,callback,capture);
这个时没有对象,就一个核心方法:document.addEventListener(event,callback,capture);
event:字符串类型:plusready , pause 暂停 , newintent 意图;
pause:当用户跳转到其他应用,或者点击了home键了都触发这个事件;
error:error事件:当webview加载某一个页面失败的时候,会触发这个事件,会在错误页面去执行这个(也就是这个是在错误页面执行这个的,所以必须要指定一个错误页面);
错误页面有两种方式:第一种是Dcloud自己定的,在打包的时候会加上这个页面;第二种是打开窗口指定一个错误页面;
callback:事件发生之后我要做什么;
capture:可以忽略;
常用event:
"plusready": 扩展API加载完成事件
"pause": 运行环境从前台切换到后台事件
"resume": 运行环境从后台切换到前台事件
"netchange": 设备网络状态变化事件
"newintent": 新意图事件
"plusscrollbottom": 窗口滚动到底部事件
"error": 页面加载错误事件
"background": 应用切换到后台运行事件
"foreground": 应用切换到前台运行事件
"trimmemory": 应用需要清理内存事件
"splashclosed": 应用启动界面已关闭事件
示例:点击返回键,会弹出“再按一次退出应用”:
<script type="text/javascript"> mui.plusReady(function(){ document.addEventListener('pause',function(){ console.log('pause'); }); }); </script>
具体示例:
<header class="mui-bar mui-bar-nav"> <a class="mui-action-back mui-icon mui-icon-left-nav mui-pull-left"></a> <h1 class="mui-title">系统事件管理</h1> </header> <div class="mui-content mui-content-padded"> <button type="button" id="btnErr" class="mui-btn mui-btn-blue mui-btn-block">错误页面</button> </div> <script src='http://libs.baidu.com/jquery/1.8.3/jquery.min.js'></script> <script src="js/mui.min.js"></script> <script type="text/javascript"> mui.plusReady(function(){ document.addEventListener('pause',function(){ console.log('pause'); }); document.addEventListener('resume',function(){ console.log('resume'); }); document.addEventListener('netchange',function(){ console.log(plus.networkinfo.getCurrentType()); }); // error事件 :error事件 $("#btnErr").bind('tap',function(){ mui.alert('aaa'); mui.openWindow({ url:'http://www.1234567.com', style:{ errorPage:'error.html' } }); }); }); </script>