Events

  • "plusready": 扩展API加载完成事件
  • : 运行环境从前台切换到后台事件
  • "resume": 运行环境从后台切换到前台事件
  • : 设备网络状态变化事件
  • "newintent": 新意图事件
  • : 页面滚动到底部事件
  • "error": 页面加载错误事件
  • : 应用切换到后台运行事件
  • "foreground": 应用切换到前台运行事件
  • : 应用需要清理内存事件
  • "splashclosed": 应用启动界面已关闭事件

方法:

  • : 添加事件监听函数

回调方法:

"plusready"

扩展API加载完成事件

说明:

String类型

为了保证HTML5扩展API的有效调用,页面加载扩展API完成后会触发此事件。通常应该在页面开始加载时监听此事件,当此事件触发后,就可以安全的调用HTML5扩展API。如果应用使用多页面,每个都会收到此事件。注意:uni-app不需要关心此事件,框架已经封装确保5+ API能够有效调用。

示例:

  1. // 监听plusready事件
  2. // uni-app项目中不要监听此事件,uni-app中不存在document对象,调用此方法会引起js错误
  3. document.addEventListener("plusready", function(){
  4. // 扩展API加载完毕,现在可以正常调用扩展API
  5. // ......
  6. }, false);

uni-app使用plus注意事项

"pause"

运行环境从前台切换到后台事件

  1. document.addEventListener("pause", function(){
  2. //从前台切换到后台
  3. }, false);

说明:

String类型

当程序从前台切换到后台时会触发此事件。若应用需要处理从前台切换到后台的事件行为,可通过注册“pause”事件监听。注意:此事件可能早于"plusready"事件触发,如果在回调事件中需要调用5+API,建议在plusready回调事件触发后再监听。

示例:

  1. <!DOCTYPE html>
  2. <html>
  3. <meta charset="utf-8">
  4. <title>Events Example</title>
  5. <script type="text/javascript" >
  6. // 扩展API加载完毕后调用onPlusReady回调函数
  7. document.addEventListener("plusready", onPlusReady, false);
  8. function onPlusReady(){
  9. document.addEventListener("pause", onAppPause, false);
  10. }
  11. function onAppPause(){
  12. console.log("Application paused!");
  13. }
  14. </script>
  15. </head>
  16. <body >
  17. </body>
  18. </html>

"resume"

运行环境从后台切换到前台事件

  1. document.addEventListener("resume", function(){
  2. //从后台切换到前台
  3. }, false);

说明:

String类型

当程序从后台切换到前台时会触发此事件。若应用需要处理从后台切换到前台的事件行为,可通过注册“resume”事件监听。注意:此事件可能早于"plusready"事件触发,如果在回调事件中需要调用5+API,建议在plusready回调事件触发后再监听。

示例:

  1. <html>
  2. <head>
  3. <meta charset="utf-8">
  4. <title>Events Example</title>
  5. <script type="text/javascript" >
  6. // 扩展API加载完毕后调用onPlusReady回调函数
  7. document.addEventListener("plusready", onPlusReady, false);
  8. function onPlusReady(){
  9. document.addEventListener("resume", onAppReume, false);
  10. }
  11. function onAppReume(){
  12. alert("Application resumed!");
  13. }
  14. </script>
  15. </head>
  16. <body >
  17. </body>
  18. </html>

uni-app使用plus注意事项

"netchange"

设备网络状态变化事件

  1. document.addEventListener("netchange", function(){
  2. //网络状态变化
  3. }, false);

说明:

String类型

设备的网络状态发生时会触发此事件。若应用需要根据网络状态变化进行业务处理,可通过注册“netchange”事件监听。注意:此事件可能早于"plusready"事件触发,如果在回调事件中需要调用5+API,建议在plusready回调事件触发后再监听。

示例:

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8">
  5. <title>Events Example</title>
  6. <script type="text/javascript" >
  7. // 扩展API加载完毕后调用onPlusReady回调函数
  8. document.addEventListener("plusready", onPlusReady, false);
  9. function onPlusReady(){
  10. document.addEventListener("netchange", onNetChange, false);
  11. }
  12. function onNetChange(){
  13. var nt = plus.networkinfo.getCurrentType();
  14. switch (nt){
  15. case plus.networkinfo.CONNECTION_WIFI:
  16. alert("Switch to Wifi networks!");
  17. break;
  18. case plus.networkinfo.CONNECTION_CELL2G:
  19. case plus.networkinfo.CONNECTION_CELL3G:
  20. case plus.networkinfo.CONNECTION_CELL4G:
  21. alert("Switch to Cellular networks!");
  22. break;
  23. default:
  24. alert("Not networks!");
  25. break;
  26. }
  27. }
  28. </script>
  29. </head>
  30. <body >
  31. </body>
  32. </html>

"newintent"

新意图事件

程序切换到后台后被第三方程序激活到前台时触发此事件。若应用需要根据第三方程序调用时进行业务处理(如判断传入的参数打开指定页面),可通过注册“newintent”事件监听。注意:此事件可能早于"plusready"事件触发,如果在回调事件中需要调用5+API,建议在plusready回调事件触发后再监听。

示例:

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8">
  5. <title>Events Example</title>
  6. <script type="text/javascript" >
  7. // 扩展API加载完毕后调用onPlusReady回调函数
  8. document.addEventListener("plusready", onPlusReady, false);
  9. function onPlusReady(){
  10. document.addEventListener("newintent", onNetIntent, false);
  11. }
  12. function onNetIntent(){
  13. // 获取新意图传入的参数
  14. var args = plus.runtime.arguments;
  15. // 处理意图事件
  16. }
  17. </script>
  18. </head>
  19. <body >
  20. </body>
  21. </html>

uni-app使用plus注意事项

"plusscrollbottom"

页面滚动到底部事件

  1. document.addEventListener("plusscrollbottom", function(){
  2. //页面滚动到底部
  3. }, false);

说明:

String类型

当滚动Webview窗口页面到底部时触发此事件。

示例:

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8">
  5. <title>Events Example</title>
  6. <script type="text/javascript" >
  7. // 扩展API加载完毕后调用onPlusReady回调函数
  8. document.addEventListener("plusready", onPlusReady, false);
  9. function onPlusReady(){
  10. document.addEventListener("plusscrollbottom", onScrollToBottom, false);
  11. }
  12. function onScrollToBottom(){
  13. }
  14. </script>
  15. </head>
  16. <body >
  17. </body>
  18. </html>

"error"

页面加载错误事件

  1. document.addEventListener("error", function(e){
  2. }, false);

说明:

String类型

当Webview窗口加载页面失败后打开错误页面时触发此事件。注意:此事件仅在错误页面中才触发。

示例:

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8"/>
  5. <meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no"/>
  6. <meta name="HandheldFriendly" content="true"/>
  7. <meta name="MobileOptimized" content="320"/>
  8. <title>Error</title>
  9. // H5 plus事件处理
  10. var ws=null;
  11. function plusReady(){
  12. // Android处理返回键
  13. plus.key.addEventListener('backbutton',function(){
  14. (history.length==1)&&ws.close();
  15. var c=setTimeout(function(){
  16. ws.close();
  17. },1000);
  18. window.onbeforeunload=function(){
  19. clearTimeout(c);
  20. }
  21. history.go(-2);
  22. },false);
  23. ws=plus.webview.currentWebview();
  24. }
  25. if(window.plus){
  26. plusReady();
  27. }else{
  28. document.addEventListener('plusready',plusReady,false);
  29. }
  30. document.addEventListener('touchstart',function(){
  31. return false;
  32. },true);
  33. // 禁止选择
  34. document.oncontextmenu=function(){
  35. return false;
  36. };
  37. // 获取错误信息
  38. document.addEventListener("error",function(e){
  39. info.innerText="请求的页面("+e.href+")无法打开";
  40. },false);
  41. </script>
  42. <style>
  43. *{
  44. -webkit-user-select: none;
  45. }
  46. html,body{
  47. margin: 0px;
  48. padding: 0px;
  49. width: 100%;
  50. height: 100%;
  51. text-align: center;
  52. -webkit-touch-callout:none;
  53. -webkit-tap-highlight-color:rgba(0,0,0,0);
  54. }
  55. .button{
  56. width: 50%;
  57. font-size: 18px;
  58. font-weight: normal;
  59. text-decoration: none;
  60. text-align: center;
  61. padding: .5em 0em;
  62. margin: .5em auto;
  63. color: #333333;
  64. background-color: #EEEEEE;
  65. border: 1px solid #CCCCCC;
  66. -webkit-border-radius: 5px;
  67. border-radius: 5px;
  68. }
  69. .button:active{
  70. background-color: #CCCCCC;
  71. }
  72. </style>
  73. </head>
  74. <body>
  75. <div style="width:100%;height:20%;"></div>
  76. <svg xmlns="http://www.w3.org/2000/svg" version="1.1" viewBox="0 0 512 512" style="height:20%;">
  77. <g id="icomoon-ignore">
  78. <line stroke-width="1" x1="" y1="" x2="" y2="" stroke="#449FDB" opacity=""></line>
  79. </g>
  80. <path d="M256 0c-141.385 0-256 114.615-256 256s114.615 256 256 256 256-114.615 256-256-114.615-256-256-256zM352 128c17.673 0 32 14.327 32 32s-14.327 32-32 32-32-14.327-32-32 14.327-32 32-32zM160 128c17.673 0 32 14.327 32 32s-14.327 32-32 32-32-14.327-32-32 14.327-32 32-32zM352.049 390.37c-19.587-32.574-55.272-54.37-96.049-54.37s-76.462 21.796-96.049 54.37l-41.164-24.698c27.98-46.535 78.958-77.672 137.213-77.672s109.232 31.137 137.213 77.672l-41.164 24.698z" fill="#666666"></path>
  81. </svg>
  82. <p style="font-size:18px;font-weight:bolder;">We're sorry ...</p>
  83. <p id="info" style="font-size:12px;"></p>
  84. <!--<div class="button" onclick="history.back()">Retry</div>-->
  85. <div class="button" onclick="if(history.length == 1){ws.close();}else{ws.back();ws.back();}">Back</div>
  86. <div class="button" onclick="ws.close()">Close</div>
  87. </body>
  88. </html>

uni-app使用plus注意事项

"background"

应用切换到后台运行事件



document.addEventListener("background", function(){
    //应用切换到后台运行
}, false);

                

说明:

String类型

在多应用运行环境(如流应用)中,启动一个新应用时,之前运行的应用将会自动切换到后台运行。切换到后台运行的应用将会触发此事件。注意:此事件可能早于"plusready"事件触发,如果在回调事件中需要调用5+API,建议在plusready回调事件触发后再监听。

示例:



<!DOCTYPE html>
<html>
    <head>
    <meta charset="utf-8">
    <title>Events Example</title>
    <script type="text/javascript" >
// 扩展API加载完毕后调用onPlusReady回调函数 
document.addEventListener("plusready", onPlusReady, false); 
function onPlusReady(){
    document.addEventListener("background", onAppBackground, false);
}
function onAppBackground(){
    console.log("Application background!"); 
}
    </script>
    </head>
    <body >
    </body>
</html>

                

"foreground"

应用切换到前台运行事件

说明:

String类型

在多应用运行环境(如流应用)中,应用切换到后台运行后再次被启动时,不会创建新的应用实例,而是将后台应用激活到前台运行。此时切换到前台运行的应用将会触发foreground事件。回调函数原型为void onForeground(e){}其中e.active表明激活应用到前台来源,可取值:"default"-默认激活方式,通常表示通过应用列表启动激活,或者关闭前一个应用后自动激活等;"stream"-通过流应用api(plus.stream.open)激活;"scheme"-通过urlscheme方式触发激活; "push"-通过点击系统通知方式触发激活; "barcode"-通过二维码扫描激活; "myapp"-通过应用收藏列表([流应用]独立App中"我的"列表)触发激活。

示例:



<!DOCTYPE html>
<html>
    <head>
    <meta charset="utf-8">
    <title>Events Example</title>
    <script type="text/javascript" >
// 扩展API加载完毕后调用onPlusReady回调函数 
document.addEventListener("plusready", onPlusReady, false); 
function onPlusReady(){
    document.addEventListener("foreground", onAppForeground, false);
}
function onAppForeground(e){
    console.log("Application foreground!");
    var activeType = e.active;    // 获取激活到前台来源
}
    </script>
    </head>
    <body >
    </body>
</html>

                

"trimmemory"

应用需要清理内存事件



document.addEventListener("trimmemory", function(){
    //应用需要清理内存
}, false);

                

说明:

String类型

在多应用运行环境(如流应用)中,可同时运行多个应用,当运行过多应用时会导致内存占用过多的情况,此时切换到后台运行的应用会收到清理内存事件。此时应用应该释放资源来减少内存的使用(如关闭非必要的Webview窗口等)。



<!DOCTYPE html>
<html>
    <head>
    <meta charset="utf-8">
    <title>Events Example</title>
    <script type="text/javascript" >
// 扩展API加载完毕后调用onPlusReady回调函数 
document.addEventListener("plusready", onPlusReady, false); 
function onPlusReady(){
    document.addEventListener("trimmemory", onAppTrimMemory, false);
}
function onAppTrimMemory(){
    console.log("Trim Memory!"); 
}
    </script>
    </head>
    <body >
    </body>
</html>

                

uni-app使用plus注意事项

"splashclosed"

应用启动界面已关闭事件



document.addEventListener("splashclosed", function(){
}, false);

                

说明:

String类型

应用启动后关闭启动界面时触发,不管是应用自动关闭还是调用plus.navigator.closeSplashscreen方法,都会触发此事件。

示例:



<!DOCTYPE html>
<html>
    <head>
    <meta charset="utf-8">
    <title>Events Example</title>
    <script type="text/javascript" >
// 扩展API加载完毕后调用onPlusReady回调函数 
document.addEventListener("plusready", onPlusReady, false); 
function onPlusReady(){
    document.addEventListener("splashclosed", onSplashClosed, false);
}
function onSplashClosed(){
    console.log("Splash closed!"); 
}
    </script>
    </head>
    <body >
    </body>
</html>

                

addEventListener

添加事件监听函数



void document.addEventListener(event, callback, capture);

                

说明:

通过Html中标准document对象的addEventListener方法添加扩展事件监听器,当指定事件发生时,将触发对应额监听回调函数。

参数:

  • event: (DOMString)必选 要添加监听的事件类型,可取上面列出的所有事件常量
  • callback: (EventTrigCallback)必选 扩展API加载完毕触发的回调函数
  • capture: (Boolean)可选 事件流捕获顺序,可忽略

返回值:

void: 无

EventTrigCallback

事件触发回调函数



void onTrig(){
    // Event trig code
}

                

说明:

指定事件触发时的回调函数,在指定的事件已经发生时调用。

参数:

返回值:

void: 无

ErrorEventTrigCallback

页面加载错误事件回调函数

说明:

当Webview窗口加载页面失败后打开错误页面时触发此事件。

参数: