Android WebView 问题:空白渲染、无响应的样式更改和断断续续的动画
Android WebView 经常表现不稳定,包括显示空白页面、忽略CSS 发生变化,并呈现出断断续续的动画。这些问题可能会令人沮丧并影响用户体验。幸运的是,这些问题有解决方案,我们将在本次讨论中探讨。
解决方案 1:启用硬件加速
从 Android 4.4 (KitKat) 开始,硬件加速对于提高 WebView 性能至关重要。在 AndroidManifest.xml 中,通过在
<code class="xml"><application ... android:hardwareAccelerated="true"></code>
解决方案 2:强制重绘
WebView 类中的静态最终布尔变量允许不断重绘视图。这可以解决样式更改无响应和空白渲染问题。但是,使用此方法会持续耗尽电池电量。
如下所示扩展 WebView 类并重写 onDraw() 方法:
<code class="java">import org.apache.cordova.CordovaWebView; import android.content.Context; import android.graphics.Canvas; public class MyWebView extends CordovaWebView { public static final String TAG = "MyWebView"; public MyWebView(Context context) { super(context); } @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); // Warning! This will cause the WebView to continuously be redrawn // and will drain the devices battery while the view is displayed! invalidate(); } }</code>
指示 PhoneGap 使用此自定义 WebView 类:
<code class="java">public void init(){ CordovaWebView webView = new MyWebView(MainActivity.this); super.init(webView, new CordovaWebViewClient(this, webView), new CordovaChromeClient(this, webView)); }</code>
解决方案 3:CrossWalk WebView
对于 Android 4.4 及更高版本,CrossWalk 提供了具有卓越性能和稳定性的直接 WebView 替代品。更多信息请访问 crosswalk-project.org。
其他提示:
以上是## 为什么我的 Android WebView 表现如此糟糕?空白页面、无响应的样式、断断续续的动画 - 如何解决?的详细内容。更多信息请关注PHP中文网其他相关文章!