У меня есть несколько веб-адресов, которые возвращаются сервером. Мой код веб-просмотра выглядит следующим образом:
WebSettings settings = mWebView.getSettings();
settings.setDomStorageEnabled(true);
settings.setJavaScriptEnabled(true);
settings.setJavaScriptCanOpenWindowsAutomatically(true);
mWebView.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
if(condition){
//Some code
return false;
}
return super.shouldOverrideUrlLoading(view, url);
}
});
Он не обрабатывает схемы URL, такие как tel:, mailto:, or invoking javascript:void()
. Если я удаляю клиент webview, он работает нормально, значит tel:
запускает телефонную звонилку. Я не могу удалить веб-клиента.
Я могу поставить чек if(URLUtil.isNetworkUrl(url))
и сделать все, но я должен явно обработать эти tel :, mailto :, whatsapp :, et c. URL-схемы. Вместо того, чтобы обрабатывать эти схемы самостоятельно, я ищу какое-то решение, с которым ОС справится сама (как это делается по умолчанию с tel: или mailto:, даже если мы не устанавливаем клиент webview, если это возможно).