blockWebkitDraw是什么意思以及如何解决它?

Jos*_*osh 17 android webkit html5-canvas

我正在使用WebView包装Android应用程序,它需要呈现HTML5画布.它可以在我的所有设备上完美运行,除了一个.我的Galaxy S4(4.2.2)正在闪烁画布,然后很快变灰.这是它产生的logcat消息:

D/GestureDetector(20071):[Surface Touch事件] mSweepDown False,mLRSDCnt:-1 mTouchCnt:7 mFalseSizeCnt:0

V/WebViewInputDispatcher(20071):blockWebkitDraw

V/WebViewInputDispatcher(20071):blockWebkitDraw lockedfalse

D/webview(20071):blockWebkitViewMessage = false

我点击一个按钮,然后画布应该渲染.这就是第一个日志项用于表面触摸事件的原因.当我直接使用webkit浏览器ping我的应用程序时,它适用于我的S4,但是当我自己包装或使用Cordova时,它会给我这个错误.我添加了两个屏幕截图以进一步显示问题.第一个是正确渲染,第二个是问题.

Android 2.3.6:

在此输入图像描述

Android:4.2.2:

在此输入图像描述

所以回到我的问题.这条消息怎么了?有没有人对如何正确渲染画布有任何建议?

Jst*_*wll 1

我粗略地浏览了 WebView 和 WebViewInputDispatcher 类,但没有得到任何结果。也许你可以去那里看看。

http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/4.2.2_r1/android/webkit/WebView.java http://grepcode.com/file/repository .grepcode.com/java/ext/com.google.android/android/4.2.2_r1/android/webkit/WebViewInputDispatcher.java

我的想法是,也许您可​​以查明阻塞发生的位置,然后扩展这些类或创建您自己的副本并修改它们。