11

WebView を使用してアクティビティに Web ページをロードする Android アプリケーションがあります。ページを手動で取得し、WebView のloadDataWithBaseURLを使用して画面に表示しています。そこにはすべて問題ありません。

今、戻るボタンを押して WebView 履歴スタックに戻ることをシミュレートしようとしています。[戻る] ボタンの押下をオーバーライドできます。WebView に履歴スタックがあることがわかります。履歴 URL が正しいことがわかりますが、WebView のgoBack()メソッドを呼び出すと、空白のページが表示されます。

誰かが以前にこれに遭遇したか、これから先に進むためのいくつかの提案をしてくれますか?

編集: WebView のloadUrlメソッドを使用すると、オーバーライドされた [戻る] ボタンが意図したとおりに機能します。しかし、なぜ....これを手動で処理する必要がある場合、履歴ページをいじり始めるにはどうすればよいですか?

4

5 に答える 5

6

私も同じ問題を抱えています。loadDataWithBaseURL の呼び出しで historyUrl パラメーターを設定すると、問題が解決することがわかりました。

于 2010-11-27T21:17:36.300 に答える
1

goBack()を呼び出す前に、canGoBack()メソッドがtrueを返すかどうかを確認する必要があります

于 2010-08-26T16:32:48.710 に答える
0

私は同じ問題を抱えていて、すべての答えを試しましたが、何も役に立ちませんでした(マシュマロを実行しているNexus 5ですべてをテストしました)。loadDataWithBaseURL代わりに使用していたので、解決策は私には関係ありませんでしloadUrlた。

さて、これは解決策ではありませんが、幸運にも気づいたことです。これは本当に奇妙で、ターゲットの URL が で終わる場合にのみ機能し.htmlます。私の意図は、これがどれほど厄介であるかを知っているので、この問題に直面しているすべての人を助けることです. これがナンセンスだと思う場合は、この回答に反対票を投じないでください。

私が気づいたのは、URL が で終わる場合、戻るボタンを押すと.htmlその白い画面が表示されることです。

一方、.htmlURL からそれを削除した場合 - 明らかに、これがその Web サイトでサポートされている場合のみ (つまり、リダイレクトとすべてがサーバー側で適切に処理され、404 ページが見つかりませんエラーが発生しない場合)、今回はその URL がベースとして機能し、戻るボタンを押しても、今回はその白い画面は表示されません

例: http://example.com/page.htmlを http://example.com/pageに置き換える必要があります

繰り返しますが、私は徹底的にテストせずにこれを投稿していません.

于 2016-12-12T13:29:36.870 に答える
0

私が見つけた唯一の解決策は、 Stack<String> を作成し、履歴を手動で管理することです

于 2012-03-16T12:20:18.367 に答える