关于此问题的说明:

Android System WebView 内核的bug:当webview页面中存在持续渲染(如跑马灯效果。banner轮播等)。页面被隐藏后会导致JS阻塞影响页面渲染效率。从66.0.3359.126版本到最新都存在此问题。

注意:

此问题必须是页面隐藏hide后,并且当前页面包含持续渲染(如跑马灯效果。banner轮播等)时才会触发此问题。如果你的页面不会隐藏、没有持续渲染逻辑可忽略此问题。

一般新窗体进入盖住老窗体,不会调用webview的hide方法,不会引发此问题。此问题常见于tabbar的切换,不同tab的webview页面只有一个是显示的,其他是hide的。或者开发者手动调用了plus.webview对象的hide方法。

解决方案:

方案1: 我们推荐开发者在页面被hide后,主动停用持续操作ui的js或css。

在隐藏的页面持续操作视图本身也不合理,影响性能。

在uni-app中,基础组件swiper和扩展uni ui的跑马灯,组件内部会判断,如果当前页面已经不再前台显示,会停止轮播。所以正常使用这些组件也不会遇到问题。

如果开发者引用了未做判断的三方组件,或者自己编写了持续操作视图的代码,则应该注意编写判断代码,在页面hide时,停止这些js或css。然后在恢复显示时,重新启用它们。

在uniapp中实现方案1的代码

//组件内监听webview隐藏停止动画(即将新增组件所在页面的生命周期,可以监听页面隐藏来停止动画)

mounted() {

// #ifdef APP-PLUS

const pages = getCurrentPages();

let currentWebview = pages[pages.length - 1].$getAppWebview();

currentWebview.addEventListener('hide', () => {

// webview隐藏,停止动画

})

currentWebview.addEventListener('show', () => {

// webview显示,开启动画

})

// #endif

},

//页面内监听页面隐藏停止动画

onShow() {

// 页面显示,开启动画

},

onHide() {

// 页面隐藏,停止动画

}

方案2: 当页面被隐藏时主动调用webview的pause方法,暂停这个webview里的所有js和css动画的运行

首先需要升级HBuilderX 2.3.8或更高版本。(如发现版本没更新请等待更新后再操作)

5+提供了新的API ,WebviewObject对象添加pause、resume方法。

void pause() 暂停Webview对象,停止js执行、DOM渲染

void resume() 恢复Webview对象,恢复js执行、DOM渲染

boolean isPause() 是否暂停,暂停则返回ture,否则返回false

uniapp用户:

nvue页面无此问题。忽略即可。

vue页面:

在页面存在持续渲染(如跑马灯效果。banner轮播等)的情况下。可在页面周期onShow、onHide分别调用webview的resume、pause方法即可

onShow() {

const w = this.$mp.page.$getAppWebview();

if(w.isPause()){

w.resume();

}

},

onHide() {

const w = this.$mp.page.$getAppWebview();

w.pause();

},

5+用户:

可以通过WebviewObject对象控制管理方式规避问题。当调用WebviewObject的show、hide方法时主动调用相关页面的pause、resume方法。

//创建页面 此页面包含持续渲染(如跑马灯效果。banner轮播等)的逻辑存在。

var a = plus.webview.open('list.html','list');

//当a页面要隐藏时可调用如下代码

var a = plus.webview.getWebviewById('list');

a.hide('none');

a.pause();

//当a页面显示时调用如下代码

var a = plus.webview.getWebviewById('list');

if(a.isPause()) {

a.resume();

}

android webview卡顿检测_Android webview隐藏后跳转新页面input输入卡顿与白屏渲染慢的问题说明及修复方案...相关推荐

  1. android 输入法如何启动流程_android输入法02:openwnn源码解析01—输入流程

    android 输入法 02:openwnn 源码解析 01-输入流程 之后要开始 android 日文输入法的测试,因此现在开始研究 android 输入法.之前两 篇文章已经对 android 自 ...

  2. android webview_在 Flutter 中使用 WebView

    本文示例代码可在微信公众号「01二进制」后台回复「WebView」查看下载 前言 我们知道在开发 Native App 时经常会有打开网页的需求,可供的选择通常只有两种: 在 App 内部打开网页 通 ...

  3. iOS性能优化-UI卡顿检测

    前言 在实现需求的同时,能写出既优雅性能又高效的代码是每个开发者都在追求的目标,但是在实际开发中,随着每个版本需求的迭代,功能变得越来越复杂,加上开发者的意识不够或者一时疏忽,日渐复杂的工程很容易产生 ...

  4. sd 芯片测试软件,sd卡芯片检测工具基础知识解析

    原标题:sd卡芯片检测工具基础知识解析 sd卡芯片检测工具是芯片行业常用的设备之一,那么用户在使用sd卡芯片检测工具的时候需要注意哪些问题呢? sd卡芯片检测工具主要测试内容有信道内测试用来测试接收器 ...

  5. 【ubuntu】ubuntu端向日葵键盘输入卡顿

    文章目录 1.问题现象 2.解决思路 3.操作过程 附录:ubuntu输入法框架 1.问题现象 最近,利用向日葵远程操控ubuntu电脑时,出现键盘输入延迟的情况.具体表现为:鼠标操作正常.网页打开正 ...

  6. 关于android app启动页白屏黑屏和华为手机启动页图片跳跃闪屏的问题

    1.产生原因    关于点击app图标出现白屏和黑屏的产生原因,首先要说的就是app的启动模式:冷启动(cold start),暖启动(warm start),热启动(lukewarm start). ...

  7. android 解决微信登录白屏样式问题

    我们在做微信登录或者支付的时候,会用到SDK自带的两个页面 WXEntryActivity.WXPayEntryActivity 但是总会因为这两个页面的样式问题,出现白屏啊抖动啊的问题 解决其实很简 ...

  8. 微信支付android白屏,android 解决微信登陆白屏样式问题

    咱们在作微信登陆或者支付的时候,会用到SDK自带的两个页面android WXEntryActivity.WXPayEntryActivityapi 可是总会由于这两个页面的样式问题,出现白屏啊抖动啊 ...

  9. android app启动白屏优化

    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/wuliang756071448/article/details/74067058 可以看到启动的时候 ...

最新文章

  1. 计算机网络学习笔记-1.2.3OSI参考模型(2)
  2. 关于IT测试中的一些问题。
  3. linux源代码剖析之include-asm
  4. ReactJS 开发过程中的一些使用心得
  5. 图论(一)—— 基本概念
  6. PASCAL程序设计语言 PDF 分享
  7. Cadence Allegro Vertex功能介绍使用方法Vertex与Slide的区别图文教程
  8. java中继承applet类_Java - 33 Java Applet基础
  9. 酷炫的可视化数据地图都是咋做的?10分钟学会
  10. JEOL即日起推出ECZ Luminous全新高分辨率核磁共振系统
  11. 37.softmax多元逻辑回归
  12. 用python画雨滴_python实现雨滴下落到地面效果
  13. XSS 工具之 beef
  14. dede后台更改mysql数据库密码
  15. MySQL week()函数及参数mode详解
  16. 将波旁威士忌的整洁Mixins提升到新的水平
  17. (Java高级程序设计-案例)-通过JDBC连接MySQL并对表进行增、删、改、查
  18. 绿标2.0达标秘笈之隐私安全问题破解
  19. CSDN报验证码错误
  20. PMSM弱磁控制的电压、电流极限圆幅值的含义

热门文章

  1. cad2016中选择全图字体怎么操作_打开CAD图纸字体丢失、重新选择怎么办?这样设置,一辈子用的到...
  2. redis php方案,Redis三种部署方案图文详解
  3. python 运算符重载_Python3面向对象-运算符重载
  4. 震惊世界的亚洲8大奇迹,你都知道几个?
  5. 豆瓣评分9分+,每一部看完不禁感慨!这里是神州大地!
  6. 新一代来袭︱不只是舒适,简直是享受,Google公司用的腰靠,到底有什么秘密?...
  7. 推荐系统中协同过滤算法实现分析
  8. php写带分页的留言板,php中分页程序之基于留言板详解_PHP教程
  9. js获取int类型长度_js代码比较大小前需要把string转换int
  10. tcl mysql_MySQL·TCL语言