Приветы. Есть приложеник на минималках на webview. Собирал каркас на skethware, а потом допиливал на андрод студио. Кусок кода:
webview2.setWebViewClient(new WebViewClient() {
@Override
public void onPageStarted(WebView _param1, String _param2, Bitmap _param3) {
if ((_param2.startsWith("https://wa.me/")) || (_param2.startsWith("https://vk.com/")) || (_param2.startsWith("https://instagram.com")) || (_param2.startsWith("https://www.facebook.com/")) || (_param2.startsWith("mailto:")) || (_param2.startsWith("viber://")) || (_param2.startsWith("https://www.gismeteo")) || (_param2.startsWith("https://t.me")) || (_param2.startsWith("https://twitter.com/")) || (_param2.startsWith("https://connect.ok.ru/")) || (_param2.startsWith("https://telegram.me/")) || (_param2.startsWith("https://api."))){
webview2.stopLoading();
intent1.setData(Uri.parse(_param2));
intent1.setAction(Intent.ACTION_VIEW);
webview2.goBack();
startActivity(intent1);
}
_fab.hide();
t = new TimerTask() {
@Override
public void run() {
runOnUiThread(new Runnable() {
@Override
public void run() {
webview2.getSettings().setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);
webview2.getSettings().setJavaScriptEnabled(true);
webview2.getSettings().setSupportZoom(false);
}
});
}
};
if (_param2.startsWith("file:///android_asset/www/index.html")) {
webview2.clearHistory();
}
if (_param2.startsWith("tel:")) {
webview2.stopLoading();
intent1.setData(Uri.parse(_param2));
webview2.goBack();
intent1.setAction(Intent.ACTION_DIAL);
webview2.loadUrl(String.valueOf(getCacheDir()));
startActivity(intent1);
}
И тут у меня проблема со ссыками, а именно со скоростью их обработки - нажимаю, к примеру, на t.me/my_acc, а приложение просто замирает на несколько секунд (видимо там чтото делает свое) и через некоторое время выполняет нужное действие. Так же и с остальными ссылками.
Исключение tel:, который сразу вызывает intent dial, но при этом на странице, на которой указан номер, как бы появляется не вилммая пленка, не дающая взаимодействовать со страницей. После этого с страницей можно взаимодействовать только после нажатия аппаратной кнопки назад, и то не всегда (выкидывает на предылущую страницу). Сам довольно далек от джава, а на изучение с нуля ни времени, ни возможности не имею. Подскажите, пожалуйста, как довести эти реакции до ума.
P.S. прогуглил несколько вариантов, но ни один из них не подошел. Скорее всего косяк мой, в силу не знания языка. К примеру вот этот:
private class CustomWebViewClient extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView webView, String url) {
if(url.startsWith("tel:")) {
Intent intent = new Intent(Intent.ACTION_DIAL);
intent.setData(Uri.parse(url));
startActivity(intent);
return true;
}
return false;
}
}
P.S.2. Как сделать прогрессбар загрузки страницы как у хрома? Имею в виду синюю полоску сверху, который показывает статус и прогресс загрузки страницы, ничему и никому не мешая при этом