share555

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
AmazingCounters.com
查看: 99|回复: 0

关于HTML5+ API plusready的兼容问题

[复制链接]

390

主题

783

帖子

2205

积分

金牌会员

Rank: 6Rank: 6

积分
2205
发表于 2020-12-24 15:34:28 | 显示全部楼层 |阅读模式

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. // 如获取设备唯一标识 plus.device.uuid
  4. },false);
复制代码

但是在新版本中,将支持提前注入5+ API,可以在plusready事件触发之前调用5+ API,提前引入节点:

  1. <script src=&quot;html5plus://ready&quot;></script>
复制代码

兼容写法:

  1. if(window.plus){
  2. // 在这里调用5+ API
  3. }else{// 兼容老版本的plusready事件
  4. document.addEventListener('plusready',function () {
  5. // 在这里调用5+ API
  6. },false);
  7. }
复制代码

注意
1. 仅仅是提前注入5+ API,并不会提前触发plusready事件(仅步骤4提前操作了)
2. Android3.0及以上平台才支持提前注入,Android2.*版本无法提前注入
3. 在流应用环境中的wap2app会自动提前注入(第一次引用网络js时注入),不需要添加

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|分享论坛

GMT+8, 2021-6-13 12:29 , Processed in 0.046275 second(s), 19 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.