# ページ内リンクはやめて欲しいもの。

WebView で、onPageFinished 複数回実行されるケースの1つ。

<form action="#" method="post" > なんて書かれ、javascript で、HTTP-POST が走るような
サイトの場合、

"#" の onPageFinished → POST先の onPageStarted → onPageFinished

となり、webview の goBack()では POST前のページに戻ってくれない。

しかたなく、"#" で履歴がどれだけ連続で蓄積されたかをチェックして
 goBack() か、canGoBackOrForward(-n) するしかないのか。。。。


ページ戻るボタンに以下のように OnClickListner を付ける。。

prevButton.setOnClickListener(new OnClickListener(){
   @Override
   public void onClick(View v){
      if (webview.canGoBack()){
         WebBackForwardList list = webview.copyBackForwardList();
         int ix = -1;
         String url = null;
         while(innerPageLink(url=list.getItemAtIndex(list.getCurrentIndex()+ix).getUrl())) ix--;
         if (url != null){
            if (webview.canGoBackOrForward(ix)){
               webview.goBackOrForward(ix);
            }else{
               webview.goBack();
            }
         }else{
            webview.goBack();
         }
      }
   }
});

============================================
上記の innerPageLink メソッドは以下のとおり。。。

protected boolean innerPageLink(String url){
   String[] u = url.split("/");
   return u[u.length-1].indexOf("#") >= 0;
}