3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

WebViewでページに戻って欲しくない時の対応

Posted at

はじめまして

はじめまして、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()
       }
}

最後に

文章を書くことが苦手でわかりづらい文章になってしまうかもしれませんが、頑張って投稿していくので、よろしくお願いします。

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?