多少複雑な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を設定していますテキストはレンダリングされず、レンダリングを強制することはできないようです。
である((私はページがどのテキストがonProgressChangedが90 –
Iで立ち往生されて表示されていないことを検出しました私はカスタムフォントを削除すると問題は発生しませんが、ページレイアウトがそれらに依存するため、カスタムフォントでレンダリングする必要があることがわかりました。 –