Html5—plusready

Android平台提前注入5+ API,支持在plusready事件前调用

 
在5+ Runtime环境中,通常情况下需要html页面解析完成后才会注入5+ API,执行的顺序为:
1. 加载html页面
2. 解析html页面(下载script/link等节点引用的资源,如js/css文件)
3. 触发DOMContentLoaded事件
4. 注入5+ API
5. 触发plusready事件
这样导致5+ API生效时间比较延后,在html中引用js执行之后才能调用5+ API,通常采用以下代码调用5+ API:
  1. document.addEventListener('plusready',function () { 
  2.         // 在这里调用5+ API 
  3. },false); 
在HBuilder7.5版本之后将支持提前注入5+ API,可以在plusready事件触发之前调用5+ API,操作方法是在页面中添加以下节点:
<script src="html5plus://ready"/>,示例如下:

  1. <!DOCTYPE html> 
  2. <html> 
  3.     <head> 
  4.         <meta charset="utf-8"/> 
  5.         <meta name="viewport" content="width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=no"/> 
  6.         <title>HTML5+ API</title> 
  7.         <script src="html5plus://ready"/> 
  8.         <script type="text/javascript" charset="utf-8"> 
  9. // 这里可以调用5+ API了,为了更好的兼容性,应该使用以下代码进行判断 
  10. if(window.plus){ 
  11.     // 在这里调用5+ API 
  12. }else{// 兼容老版本的plusready事件 
  13.     document.addEventListener('plusready',function () { 
  14.         // 在这里调用5+ API 
  15.     },false); 
  16.         </script> 
  17.     </head> 
  18.     <body> 
  19. Hello HTML5 plus. 
  20.     </body> 
  21. </html> 
注意
1. 仅仅是提前注入5+ API,并不会提前触发plusready事件(仅步骤4提前操作了)
2. Android3.0及以上平台才支持提前注入,Android2.*版本无法提前注入
3. 在流应用环境中的wap2app会自动提前注入(第一次引用网络js时注入),不需要添加<script src="html5plus://ready"/>节点
posted @ 2018-09-18 14:07  U5B89  阅读(9545)  评论(0)    收藏  举报