首頁 >web前端 >css教學 >## 為什麼我的 Android WebView 表現這麼糟糕?空白頁面、無回應的風格、斷斷續續的動畫 - 如何解決?

## 為什麼我的 Android WebView 表現這麼糟糕?空白頁面、無回應的風格、斷斷續續的動畫 - 如何解決?

DDD
DDD原創
2024-10-26 11:11:02320瀏覽

##  Why is my Android WebView behaving so poorly? Blank pages, unresponsive styles, choppy animations - how do I fix it?

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。

其他提示:

  • 將 WebView 渲染優先權設為高:appView.getSettings()。 setRenderPriority(RenderPriority.HIGH)
  • 按需啟用插件:appView.getSettings().setPluginState(WebSettings.PluginState.ON_DEMAND)
  • 使用最新的WebView API 並將支援的最低API 設置為您正在使用的一個。
  • 應用 -webkit-transform:translate3d(0,0,0); CSS 中的各種元素以提高效能。
  • 使用擴展 WebView 的自訂類別並使用 invalidate() 覆寫 onDraw() 方法,以僅在必要時強制重繪。
  • 啟用社群 wiki允許其他人對此答案做出最佳化。

以上是## 為什麼我的 Android WebView 表現這麼糟糕?空白頁面、無回應的風格、斷斷續續的動畫 - 如何解決?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn