85 votes

Puis-je passer un appel téléphonique depuis HTML sur Android ?

Pour passer un appel téléphonique via HTML sur un iPhone, je crée un fichier de type <A/> avec un href formaté comme : <a href='tel:123-555-1212'>Dial Me</a> .

Existe-t-il un équivalent du HTML sur Android ?

CLARIFICATION - l'utilisation du format href='tele:123-555-1212' fonctionne effectivement sur Android. Je testais l'application dans un wrapper Java natif sur l'appareil. Il ne semble pas que l'on puisse passer un appel à partir d'une application web hébergée dans un wrapper natif.

128voto

systempuntoout Points 27584

Oui, vous pouvez le faire ; cela fonctionne sur Android aussi :

tel : numéro de téléphone
Appelle le numéro de téléphone numéro de téléphone saisi. Les numéros de téléphone valides tels que définis dans la RFC 3966 de l'IETF sont acceptés. Les exemples valides sont les suivants suivants :

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

Le navigateur Android utilise l'application Phone pour gérer le schéma "tel", tel que défini par la RFC 3966.
En cliquant sur un lien comme :

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

sur Android fait apparaître l'application Téléphone et permet de pré-saisir les chiffres du numéro 2125551212 sans numérotation automatique.

Jetez un coup d'œil à RFC3966

0 votes

Quand vous cliquez sur le lien, l'iphone lance l'appel automatiquement (numérotation automatique) ? ou c'est comme Android ? (ouvrir le composeur, et vous devez appuyer sur le bouton d'appel).

7 votes

Assurez-vous que vous avez ceci : <uses-permission Android:name="Android.permission.CALL_PHONE" /> dans votre Manifest.xml

25voto

Martyn Points 5662

Je viens d'écrire une application qui peut passer un appel à partir d'une page Web. Je ne sais pas si cela peut vous être utile, mais je l'inclus quand même :

dans votre onCreate, vous devrez utiliser une webview et affecter un WebViewClient, comme ci-dessous :

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

puis gérer le clic sur un numéro de téléphone comme ceci :

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;
        }
    }
}

Faites-moi savoir si vous avez besoin de plus de conseils.

1 votes

Merci - oui, c'est une bonne approche ! J'ai fini par ajouter l'accès à mon application depuis JavaScript avec addJavascriptInterface.

21voto

Slokun Points 2861

En général, sur Android, si vous affichez simplement le numéro de téléphone et que l'utilisateur tape dessus, il l'affichera dans le composeur. Ainsi, vous pouvez simplement faire

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

Lorsque l'utilisateur appuie sur la partie en gras, puisqu'elle est formatée comme un numéro de téléphone, le composeur s'ouvre et affiche les éléments suivants 4165551234 dans le champ du numéro de téléphone. L'utilisateur n'a plus qu'à appuyer sur le bouton d'appel.

Vous pourriez être en mesure de faire

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

pour couvrir les deux appareils, mais je ne suis pas sûr que cela fonctionne bien. Je vais faire un essai prochainement et je vous le ferai savoir.

EDIT : Je viens de faire un essai sur mon HTC Magic avec un Rogers 1.5 rooté avec 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>

La première, entourant le lien et imprimant le numéro de téléphone, a fonctionné parfaitement. Le composeur s'est affiché avec les traits d'union et tout le reste. La seconde, qui dit our number avec le lien, a fonctionné exactement de la même manière. Cela signifie qu'en utilisant <a href='tel:xxx-xxx-xxxx'> devrait fonctionner pour tout le monde, mais je ne voudrais pas que mon seul test soit concluant.

Le lien direct avec le numéro a donné les résultats escomptés : J'ai essayé de récupérer le fichier inexistant sur le serveur.

La dernière a fait ce que j'ai mentionné ci-dessus, et a fait apparaître le composeur, mais sans les traits d'union de mise en forme.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X