ホームページ > ウェブフロントエンド > CSSチュートリアル > ## Android WebView の動作が非常に悪いのはなぜですか?空白のページ、反応しないスタイル、途切れ途切れのアニメーション - どうすれば修正できますか?

## Android WebView の動作が非常に悪いのはなぜですか?空白のページ、反応しないスタイル、途切れ途切れのアニメーション - どうすれば修正できますか?

DDD
リリース: 2024-10-26 11:11:02
オリジナル
330 人が閲覧しました

##  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 の 内に次の行を追加して、ハードウェア アクセラレーションを有効にします。 tag:

<code class="xml"><application
   ...
   android:hardwareAccelerated="true"></code>
ログイン後にコピー

解決策 2: 再描画を強制する

WebView クラスの静的なfinal boolean変数を使用すると、ビューを継続的に再描画できます。これにより、スタイルの変更が応答しなくなったり、空白のレンダリングの問題が解決される可能性があります。ただし、このメソッドを使用するとバッテリーが消耗し続けます。

以下に示すように 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>
ログイン後にコピー

このカスタム WebView クラスを使用するように PhoneGap に指示します。

<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 を
  • Apply -webkit-transform: translation3d(0,0,0); CSS のさまざまな要素に追加してパフォーマンスを向上させます。
  • WebView を拡張し、onDraw() メソッドを validate() でオーバーライドするカスタム クラスを使用して、必要な場合にのみ再描画を強制します。
  • コミュニティ Wiki を有効にして、他の人がこの回答への最適化に貢献できるようにします。

以上が## Android WebView の動作が非常に悪いのはなぜですか?空白のページ、反応しないスタイル、途切れ途切れのアニメーション - どうすれば修正できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート