はじめまして
はじめまして、Blueです。
はじめての投稿です。
温かい目で見てくれると幸いです。
はじめに
Androidアプリには、Webサイトを表示することができるWebViewというものがあります。
goback()、goForward()を使用することで、ページを戻ったり、進んだりすることができます。
その際、データを送信等のページに戻って欲しくない場合に閲覧履歴を削除する方法を紹介いたします。
方法
WebViewのPublic methodsを見てみると、clearHistory()といったものがあります。
これを使用することで、戻る/進む履歴をクリアすることができます!
履歴の削除を特定のページの時に行いたい場合、次の手順で実装することができます。
1.copyBackForwardList()で戻る/進むリストを取得
2.currentIndexで現在の履歴アイテムのインデックスを取得
3.getItemAtIndex()で指定したページをアイテム(URL)を取得
4.取得したページがHogeページなら履歴を削除
試しに実装して見ました。
// 読み込みが始まった時
override fun onPageStarted(view: WebView?, url: String, favicon: Bitmap?) {
// 戻る/進むリストを取得
val backForwardList = WebView.copyBackForwardList()
// 現在のページのURLを取得
val currentIndex = backForwardList.currentIndex
// 1つ前のページのURLを取得
val previousPageUrl = WebView.copyBackForwardList().getItemAtIndex(currentIndex - 1).url
// 1つ前のページのURLがhogeページなら履歴を削除
if (previousPageUrl == hogePageUrl) {
WebView.clearHistory()
}
}
最後に
文章を書くことが苦手でわかりづらい文章になってしまうかもしれませんが、頑張って投稿していくので、よろしくお願いします。