ОК, поэтому, чтобы начать вызов после нажатия на ссылку в вашем WebView, вы сначала должны создать ссылку со схемой такого типа:
<a href=\"tel:8056542739\">(805) 654-2739.</a>
Тогда в вашем коде вы должны переопределить shouldOverrideUrlLoading () следующим образом:
webView.setWebViewClient(new WebViewClient(){
@Override
public boolean shouldOverrideUrlLoading(WebView wView, String url)
{
if (url.startsWith("mailto:") || url.startsWith("tel:") || url.startsWith("geo:") || url.startsWith("http:") || url.startsWith("https:")) {
Intent intent = new Intent(Intent.ACTION_VIEW,
Uri.parse(url));
startActivity(intent);
return true;
} else if (url.startsWith("whatsapp:")) {
Intent sendIntent = new Intent();
sendIntent.setAction(Intent.ACTION_SEND);
sendIntent.putExtra(Intent.EXTRA_TEXT, "This is my text to send.");
sendIntent.setType("text/plain");
sendIntent.setPackage("com.whatsapp");
startActivity(sendIntent);
return true;
} else if (url.startsWith("spotify:")) {
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.parse(
"spotify:album:0sNOF9WDwhWunNAHPD3Baj"));
intent.putExtra(Intent.EXTRA_REFERRER,
Uri.parse("android-app://" + context.getPackageName()));
startActivity(intent);
return true;
}
return false;
}
});
Это переопределение отправляет что-либо со схемой tel :, mailto :, http: или https: новому «намерению» с ACTION_VIEW, что означает, что Android попытается найти одно или несколько приложений, установленных на устройстве, которые могут справиться с этим. вид URI. Приложение Phone может обрабатывать tel: так, что оно вызывается, если ваша ссылка содержит эту схему, как в моем примере. То же самое для схемы mailto :, которая должна открывать ваше приложение для составления электронной почты. Для WhatsApp и Spotify у них обоих есть такие схемы, как WhatsApp и Spotify, которые могут обрабатываться немного по-разному. Смотрите один из возможных способов выше.