¿Puedo realizar una llamada telefónica desde HTML en Android?

84

Para hacer una llamada telefónica a través de HTML en un iPhone que crear una <A/>etiqueta con un href formateado como: <a href='tel:123-555-1212'>Dial Me</a>.

¿Existe un equivalente para HTML en Android?

ACLARACIÓN: usar el formato href = 'tele: 123-555-1212' sí funciona en Android. Estaba probando la aplicación dentro de un contenedor nativo de Java en el dispositivo. No parece que podamos realizar una llamada desde una aplicación web alojada en un Native Wrapper.

Kevin
fuente

Respuestas:

128

Sí tu puedes; también funciona en Android :

tel: phone_number
Llama al número de teléfono introducido. Se aceptan números de teléfono válidos como se define en el IETF RFC 3966. Los ejemplos válidos incluyen lo siguiente:

* tel:2125551212
* tel: (212) 555 1212

El navegador de Android usa la aplicación Teléfono para manejar el esquema "tel", según lo define RFC 3966.
Al hacer clic en un enlace como:

<a href="tel:2125551212">2125551212</a>

en Android, aparecerá la aplicación Teléfono e ingresará previamente los dígitos para 2125551212 sin marcación automática.

Eche un vistazo a RFC3966

sistema de salida
fuente
cuando hace clic en el enlace, el iphone inicia la llamada automáticamente (marcado automático)? o es como Android? (abra el marcador y debe presionar el botón de llamada).
Enrique
7
Asegúrese de tener esto: <uses-allow android: name = "android.permission.CALL_PHONE" /> en su Manifest.xml
jasonflaherty
25

Acabo de escribir una aplicación que puede realizar una llamada desde una página web; no sé si esto es útil para usted, pero de todos modos incluyo:

en su onCreate, deberá usar una vista web y asignar un WebViewClient, como se muestra a continuación:

browser = (WebView) findViewById(R.id.webkit);
browser.setWebViewClient(new InternalWebViewClient());

luego maneje el clic en un número de teléfono como este:

private class InternalWebViewClient extends WebViewClient {

    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
         if (url.indexOf("tel:") > -1) {
            startActivity(new Intent(Intent.ACTION_DIAL, Uri.parse(url)));
            return true;
        } else {
            return false;
        }
    }
}

Avísame si necesitas más sugerencias.

Martyn
fuente
1
Gracias, sí, ¡es un buen enfoque! Terminé agregando acceso a mi aplicación desde JavaScript con addJavascriptInterface
Kevin
21

Generalmente en Android, si simplemente muestra el número de teléfono y el usuario lo toca, lo mostrará en el marcador. Entonces, simplemente podrías hacer

For more information, call us at <b>416-555-1234</b>

Cuando el usuario toca la parte en negrita, ya que tiene el formato de un número de teléfono, aparecerá el marcador y se mostrará 4165551234en el campo del número de teléfono. El usuario solo tiene que presionar el botón de llamada.

Podrías ser capaz de hacer

For more information, call us at <a href='tel:416-555-1234'>416-555-1234</a>

para cubrir ambos dispositivos, pero no estoy seguro de qué tan bien funcionaría. Lo intentaré en breve y te lo haré saber.

EDITAR: Acabo de probar esto en mi HTC Magic con un Rogers 1.5 rooteado con SenseUI:

For more information, call us at <a href='tel:416-555-1234'>416-555-1234</a><br />
<br />
Call at <a href='tel:416-555-1234'>our number</a>
<br />
<br />
<a href='416-555-1234'>Blah</a>
<br />
<br />
For more info, call <b>416-555-1234</b>

El primero, rodeando con el enlace e imprimiendo el número de teléfono, funcionó a la perfección. Abrió el marcador con los guiones y todo. El segundo, diciendo our numbercon el enlace, funcionó exactamente igual. Esto significa que el uso <a href='tel:xxx-xxx-xxxx'>debería funcionar en todos los ámbitos, pero no sugeriría tomar mi única prueba como concluyente.

La vinculación directa al número hizo lo esperado: Intenté extraer el archivo inexistente del servidor.

El último hizo lo que mencioné anteriormente y abrió el marcador, pero sin los agradables guiones de formato.

Tarka
fuente