WebViewで開いたはずが外部ブラウザが起動される

『初めてのAndroid』 7.2 ViewによるWebアクセスのサンプルコードを実行…うまくいかない。

http://www.google.com
と打ってWebViewで開こうとするとデフォルトのWebブラウザが起動される。


どうやら、ページがリダイレクトされるときに外部ブラウザが起動されてしまうらしい。以下を参照。
http://blog.livedoor.jp/maochan__/archives/1866732.html:title=#android しづ子ファッション通信 Σ(^A^;) : Hello, WebView で外部ブラウザが起動する件


http://www.google.co.jp
にするとちゃんとWebViewの中に開けた。


リダイレクトされてもWebViewの中に表示する方法は以下を見た。
まこちの覚え書き  WebViewのリダイレクト時のブラウザ起動防止

WebView webView = (WebView)findViewById(R.id.web_view);
webView.setWebViewClient(new WebViewClient(){
  @Override
  public boolean shouldOverrideUrlLoading(WebView view, String url) {
    return super.shouldOverrideUrlLoading(view, url);
  }
});

というふうにすればいいらしい。

APIリファレンスには、

If WebViewClient is not provided, by default WebView will ask Activity Manager to choose the proper handler for the url.

WebViewClient | Android Developers

とある。
return super.shouldOverrideUrlLoading(view, url);でOverrideしている関数内で、引数に現在のView(WebView)とurl(開こうとしているURL)をしている(んだと思う)。