public class MyWebViewClient extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view,final String url) {
//try to find browse activity to handle uri
final Uri parsedUri = Uri.parse(url);
AlertDialog alertdialog = new AlertDialog.Builder(activity)
.setIcon(R.mipmap.alert)
.setTitle(Objects.requireNonNull(RawPrinterApp.getAppContext()).getString(R.string.open_url))
.setMessage(url).setNegativeButton(Objects.requireNonNull(RawPrinterApp.getAppContext()).getString(R.string.btn_no),null)
.setPositiveButton(Objects.requireNonNull(RawPrinterApp.getAppContext()).getString(R.string.btn_yes), new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
webView.loadUrl(url);
}
}).create();
alertdialog.setButton(AlertDialog.BUTTON_NEUTRAL,Objects.requireNonNull(RawPrinterApp.getAppContext()).getString(R.string.reSelectTxt), new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
PackageManager packageManager = activity.getPackageManager();
Intent browseIntent = new Intent(Intent.ACTION_VIEW).setData(parsedUri);
// Create intent to show chooser
Intent chooser = Intent.createChooser(browseIntent, Objects.requireNonNull(RawPrinterApp.getAppContext()).getString(R.string.open_url));
if (browseIntent.resolveActivity(packageManager) != null) {
activity.startActivity(chooser);
}
}
});
alertdialog.show();
return true; // говорим что стандартное поведение было переопределено и сама вьюшка не дергается
}
}
Условия появления диалога и вообще нужен он вам или нет переделаете сами