1

アプリで WebView を使用していますが、多くのユーザーからいくつかの問題が報告されています。それらのほとんどは、以前ではなく 4.1.1 で発生しているようです。

構成:

  • HW アクセラレーション アクティビティ内の Webview。
  • JS が有効、プラグインが有効、ファイル アクセスが有効、DOM ストレージが有効。
  • カスタム WebChromeClient および WebViewClient。
  • Webview には透明な背景 (0X00000000) がありますが、それを削除しても改善されないようです。

問題:

  • 一部の URL を表示するとランダムにブラック アウトします。ブラック アウトの意味は、アクティビティが停止するだけで、JAVA 例外はありません。
  • 通常、ログは glDrawArrays() で SIGSEGV を報告しますが、別の場所にある可能性もあります (ユーザーからの十分な情報ではありません)。

回避策はありますか?

WebView で HW アクセラレーションを無効にするだけです。ええ、もうブラック アウトはありません。そうです...しかし、(ディスプレイのパフォーマンスがかなり低下するため、この回避策がまさにそうであると考えても):

新しい問題:

  • ハードウェア アクセラレーションがないと、HTML5 ビデオ (YouTube) が機能しません。サウンドは再生されますが、ビデオは再生されません。
  • 解決策は、再生開始イベントをキャッチして、ビデオを videoView で再生することです。これは、フルスクリーン再生の場合と同じ方法です (onShowCustomView を使用して、android webview でフルスクリーンで HTML5 ビデオを再生するを参照してください)。それにもかかわらず、私は現在、そのようなイベントをキャッチできません。私は HTML ページの所有者ではないことに注意してください。HTML コードを変更して、何らかの Javascript コードを追加することはできません。

質問:

  • 多くのデバイスで HW アクセラレーション + WebView を使用して、同じ種類のクラッシュが発生した人はいますか? もしそうなら、どうやってそれを解決しますか?
  • 回避策について、この問題を解決する方法を知っている人はいますか? IOS のようにするとよいでしょう。

読んでくれてありがとう!

4

0 に答える 0