Адаптировано из ответа Гарретта, потому что я обнаружил, что он не совсем работает, как написано, дал несколько ошибок и т. Д. И часть о видимости, на мой взгляд, не нужна. У меня была та же проблема, что и у ОП, и это дает мне поведение, которое я хочу:
webView.setWebViewClient(new WebViewClient()
{
private boolean mLoaded = false;
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
if(mLoaded){ // open in new browser window only if page already finished
try
{
Uri uri = Uri.parse(url);
Intent intent = new Intent(Intent.ACTION_VIEW, uri);
view.getContext().startActivity(intent);
}
catch (Exception e)
{
Log.d("webview", e.getMessage());
}
return true;
}
else
{
return false;
}
}
@Override
public void onPageFinished(WebView webView, String url)
{
mLoaded = true;
}
}