plusready html5,Android平台5+ API提前生效,支持在plusready事件前调用
ios上plus是一直存在的,不涉及等ready事件。但安卓上还是需要等plus ready。
在安卓环境中,通常情况下需要html页面解析完成后才会让5+ API生效,安卓的执行的顺序为:
加载html页面,loading
解析html页面(解析title节点、下载script/link等节点引用的资源,如js/css文件)
触发DOMContentLoaded事件
这样导致5+ API生效时间比较延后,通常采用以下代码等待plus ready后再调用5+ API:
document.addEventListener('plusready',function () {
// 在这里调用5+ API
},false);
我们总是在不停追求性能优化,生效时间越早,我们可以把app的体验做的更好。
在HBuilder7.5版本之后安卓版支持提前注入5+ API,可以在plusready事件触发之前调用5+ API,操作方法是在页面中添加以下节点:
,示例如下:
HTML5+ API
// 这里可以调用5+ API了,为了更好的兼容性,应该使用以下代码进行判断
if(window.plus){
// 在这里调用5+ API
}else{// 兼容老版本的plusready事件
document.addEventListener('plusready',function () {
// 在这里调用5+ API
},false);
}
Hello HTML5 plus.
注意
5+ API虽然可以提前生效,但为了不引发向下兼容问题,plusready事件并不会提前触发,该事件仍然保持原来的触发时机;
提前生效的Plus api,操作时需注意,此时DOMContentLoaded事件高概率未触发,此时操作dom会失败,操作dom也还是得等到DOMContentLoaded后;
Android3.0及以上平台才支持提前生效,Android2.*版本不支持此功能;
应用场景举例
定位
很多app的页面是根据位置来显示内容的,如果在DOMContentLoaded后再请求位置,然后再提交服务器获取该位置周边的商家列表,这样就会慢。而提前使用plus api获取位置,就可以加速页面显示速度。尤其对于首页就要拉周边信息的app更重要。
父子页面加载
如果页面是父子webview布局,过去是父页面在触发plusready后再创建子页面,导致整体页面显出出来比较慢。如果让plus api提前生效,我们可以无需等待父页面plusready就直接创建子页面。
另外,HBuilder在2017年起的版本,支持双首页,如果首页是父子页面,建议把这2个页面都配到manifest里形成双首页,此时原来的子页面并不需要等父页面的plus ready才创建。而非首页的二级页面,其实也不建议用父子页面,而是使用nativeobj里的原生view来做title,不用webview来做title。
应用场景还有很多,优化无极限,欢迎高手继续研究。
plusready html5,Android平台5+ API提前生效,支持在plusready事件前调用相关推荐
- android sdk 封装html5,Android平台以WebView方式集成HTML5+SDK方法
HTML5+ SDK 可以按照"独立应用"和"单页面"两种种方式进行集成,两种集成方式各有优点. 独立应用集成方式:即Widget集成方式,开发者在集成后可在需 ...
- Android 让你的SeekBar 也支持长按事件
SeekBar 本身有就是一个View 对象,既然是View 对象那也证明它有setOnLongClickListener 事件,众所周知,这个事件是让一个View 对象拥有长按功能,进而达到我们想要 ...
- Android平台版本-API级别与版本号对照表,移动开发技术导论答案
| Android 5.0 | 21 | [LOLLIPOP]( ) | | Android 4.4W | 20 | [KITKAT_WATCH]( ) | 仅限 KitKat for Wearabl ...
- Android平台 Target API level 升级到 31,在Android 12上启动黑屏卡死
项目的SDK要升级,要把Target API level调整31.项目使用的是Unity2017.4.x,接完SDK后打完APP包装到手机上,启动直接黑屏.看Log,也没定位到具体的原因.然后网上搜索 ...
- 【第四篇章-android平台MediaCodec】推断是否支持硬件解码码
public boolean isSupportMediaCodecHardDecoder(){boolean isHardcode = false;//读取系统配置文件/system/etc/med ...
- html5 plus 兼容,H5+ API plusready的兼容
Android平台提前注入5+ API,支持在plusready事件前调用 在5+ Runtime环境中,通常情况下需要html页面解析完成后才会注入5+ API,执行的顺序为: 1. 加载html页 ...
- Android平台第三方插件开发指导(dcloud)
技术架构 HTML5+ 基座扩展采用三层结构,JS层.PluginBridge层和Native层. 三层功能分别是: JS层: 在Webview页面调用,触发Native层代码,获取执行结果. Plu ...
- Android平台安全模型(The Android Platform Security Model)
版权声明:本文为CSDN博主「ashimida@」翻译的文章,转载请附上出处链接和本声明. 本文链接:https://blog.csdn.net/lidan113lidan/article/detai ...
- cocos2d js调用java_【cocos2d-js官方文档】二十四、如何在android平台上使用js直接调用Java方法...
在cocos2d-js 3.0beta中加入了一个新特性,在android平台上我们可以通过反射直接在js中调用java的静态方法.它的使用方法很简单: var o = jsb.reflection. ...
最新文章
- DvaJS 入门, 快速上手Dva
- 单例模式 之 单例模式——懒汉模式
- java 断点续传 开源_java断点续传原理
- LeetCode之Next Greater Element I
- NAU8810相关问题
- php 标点符号,php 过滤英文标点符号及过滤中文标点符号代码
- cpprestsdk编译安装linux,使用C++ REST SDK开发简单的Web(HTTP)服务
- spring p2p项目html,springboot2.x项目实战视频教程p2p金融中等项目
- Ruby的Range类
- Ubuntu18.04无法连接向日葵服务器的问题及解决
- 金蝶k3数据库服务器信息,金蝶k3如何查询连接的服务器配置
- 帆软报表决策系统自定义登录界面 使用验证码登录 教程二
- 解释PBR纹理贴图(texture-maps)
- 计算机二级证能落户嘛,有哪些二级技师证可以办理落户深圳 - 入户吐槽网
- Nordic fds 文件系统源码探究
- creo扫描选择多条链作为轨迹_Creo与Proe可变截面扫描关系式雨伞建模实例-一加一学院...
- 数学作图工具_数学趣览X 曾让古希腊人犯怵的三大几何作图难题
- 家政维修小程序+上门预约小程序+VUE前后端分离+uniapp(附近师傅+门店入驻+在线抢单服务APP、小程序、公众号、H5)
- latex公式斜体_latex输入斜体
- cocos-creator使用记录5_发布微信小游戏