2016-04-25 9 views
1

多少複雑なHTMLレンダリングが必要なアプリケーションを開発しています(基本的にテキストと画像ですが、テキストにはカスタムフォントやパスなどの高度な機能があります)。コンテンツをレンダリングする。Androidのwebviewでテキストのレンダリングが完了しない

一部のページでは一部のデバイスでテキストが表示されないという問題があります。

私はすべての3つのコールバックを使用しています:

  • がonPageFinished。
  • onProgressChanged;
  • onNewPicture(非推奨、しかし、一部のユーザーは、それが動作することに関連する)

しかし、彼らは私がページのほとんどのテキストが欠落しているのWebViewを取得トリガしている場合でも。一部のデバイスでは、webviewをタッチするとテキストが表示されますが、それは信頼できない不安定な動作です。

私はinvalidate()を絶えず呼び出そうとしましたが、テキストを強制的に描画しません。私はwebviewコンソールをロギングしています。明らかに、何らかのエラーが発生していないことがあります(テキストが完全にレンダリングされ、正しくレンダリングされたページで問題が発生することがあります)。私は、なぜ何の手掛かりをしたんので、私は、今緩んでよ

offScreenWebView.layout(0, 0, viewPortWidth, viewPortHeight); 
offScreenWebView.getSettings().setUseWideViewPort(true); 
offScreenWebView.getSettings().setLoadWithOverviewMode(true); 
offScreenWebView.getSettings().setTextZoom(100); 
offScreenWebView.setDrawingCacheEnabled(true); 
offScreenWebView.getSettings().setJavaScriptEnabled(true); 
offScreenWebView.getSettings().setRenderPriority(WebSettings.RenderPriority.HIGH); 
offScreenWebView.getSettings().setPluginState(WebSettings.PluginState.ON_DEMAND); 

if(Build.VERSION.SDK_INT > Build.VERSION_CODES.LOLLIPOP) { 
    offScreenWebView.enableSlowWholeDocumentDraw(); 
} 

:(私はいくつかの方法が廃止されていることを知っているが、それは、その後のために働いていることに関連するいくつかの他のソリューション)のように私は私のWebViewを設定していますテキストはレンダリングされず、レンダリングを強制することはできないようです。

+0

である((私はページがどのテキストがonProgressChangedが90 –

+0

Iで立ち往生されて表示されていないことを検出しました私はカスタムフォントを削除すると問題は発生しませんが、ページレイアウトがそれらに依存するため、カスタムフォントでレンダリングする必要があることがわかりました。 –

答えて

0

私は多少私の問題を解決することができました。私が持っていた主な問題は、Webviewsが同時にロードされている(ビューページで使用されていた)ためであり、おそらくWebviewsがフォントをロードしていたときにいくつかの並行性の問題が発生したためです。私はURLの読み込みをカプセル化し、webviewsが一度に1ページずつ読み込まれるようにしました。

また、webviewsを破壊すると、私はcancelTimerのようなメソッドを呼び出すことができませんでした。これは、類似したフォントを持つ他のページをレンダリングするときに問題になりました。私が行った唯一のことは、参照をnullにすることでした。

これはやや遅いですが、少なくともウェブビューを使用して一貫したレンダリング結果を得るには唯一の方法でした。

0

これはおそらく、Google Playから自動的に提供されるAndroid System Web Viewの最新のアップデートによるものです。更新プログラムをアンインストールすると役立ちます。もちろん、本当に良い解決策ではありません(( 別の回避策は、WebViewの中に無効HWのaccelleration

関連する問題