2

私はまだAndroidを初めて使用し、Webビューを備えたアプリケーションを持っています。

Webビューがランダムな数のリダイレクト(同じページへの場合もあり、リダイレクトの順序も変更される)があるページの読み込みを終了するタイミングを知る必要があるため、完全に読み込まれたページがある場合にのみスプラッシュ画面を削除できます。

webviewclientでは、onNewPictureと同様に、onPageStarted関数とonPageFinished関数がリダイレクトごとに1回呼び出されます(リダイレクト中は画面が常に空白になります)。そのため、最後に呼び出されたのはいつかわかりません(実際にページが読み込まれました)。

また、onLoadResourceを使用して、ロードされたリソースの数をカウントしようとしましたが(危険で信頼性の低いアプローチですが、ここでは必死になっています)、ページがキャッシュされた後、1回または2回しか呼び出されないため、これも失敗しました。

それは私が今まで知っていることを使って解決することができない1つの大きなパズルです、誰かが私を助けてくれますか?

よろしくお願いします。

4

1 に答える 1

2

ふと見ると、書き直す必要のある Web サイトがあるようですね... :-)

私が考えることができる2つの可能性は次のとおりです。

  1. onPageFinished()ある程度の時間が経過した後、および noが返された場合onPageStarted()は、リダイレクトが完了したと見なしてください。
  2. これらのリダイレクトがすべて HTTP リダイレクト (3xx 応答ステータス コード) である場合、最終的な URL を取得するまで HttpClient を使用してリダイレクトをナビゲートし、その URL を に渡してWebView表示することができます。
于 2010-10-13T16:23:19.583 に答える