これまでURLバーに指定したページをWebViewに表示できたが、URLリダイレクトされた時にURLバーはリダイレクト先のURLを表示できない・・・。
Chromeに"http://yahoo.co.jp"でアクセスすると、
URLバーは"m.yahoo.co.jp"("http://m.yahoo.co.jp")に変わっている・・・。
しかし、
ここでBUTTON1を押しても、
URLは変わらない・・・。
HTTP省略は後でやるとしても、まず"http://m.yahoo.co.jp"を表示するようにしたほうがいいだろう・・・。
また、URLを指定されてBUTTON1で表示する場合はそのままでよかったが、表示したページ内のリンクをクリックした場合はリンク先のページが表示されても、URLバーが変わらない・・・。
SportsNaviにアクセスしても、
変わらないが、Chromeなら、
"m.sports.yahoo.co.jp"になる・・・。
このようにページ内のリンクをURLバーに反映させたい・・・。
WebViewのURLが上書き変更されるときは、WebViewClientのshouldOverrideUrlLoadingが呼ばれるので、そこを変更すればいい・・・。
shouldOverrideUrlLoadingで、findViewByIdでurlBarを取得して、setTextで引数のurlを指定する・・・。
(今回はAndroid7系("N")は考えずに上のほうのオーバーライドメソッドを修正・・・。)
これだけなのだが、今回匿名クラスでオーバーライドではなく、CustomWebViewClientを別クラスにしているので、Activityを格納するメンバactivityを用意して、そこからurlBarを取得している・・・。
activityは、MainActivityのonCreateで、
customwvを生成した後に、customwv.activityにthisを渡している・・・。
これでアクセスすると、
"http://m.yahoo.co.jp"になっていて、SportsNaviのリンクを押すと、
今度は、"http://m.sports.yahoo.co.jp"になっている・・・。
https://github.com/bg1bgst333/Zinc/tree/develop/android/empty_activity/android_studio/src/Zinc