Kann ich über Android unter HTML telefonieren?

82

Um einen Anruf über HTML auf einem iPhone zu tätigen, erstelle ich ein <A/>Tag mit einem href, das wie folgt formatiert ist : <a href='tel:123-555-1212'>Dial Me</a>.

Gibt es eine Entsprechung für HTML unter Android?

CLARIFICATION - mit dem Format href = 'tele: 123-555-1212' funktioniert in der Tat auf Android. Ich habe die App in einem nativen Java-Wrapper auf dem Gerät getestet. Es scheint nicht so, als könnten wir einen Anruf von einer Webanwendung aus tätigen, die in einem Native Wrapper gehostet wird.

Kevin
quelle

Antworten:

126

Ja, du kannst; es funktioniert auch auf Android :

tel: phone_number Ruft
die eingegebene Telefonnummer an. Gültige Telefonnummern gemäß IETF RFC 3966 werden akzeptiert. Gültige Beispiele sind:

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

Der Android-Browser verwendet die Telefon-App, um das in RFC 3966 definierte "Tel" -Schema zu verarbeiten. Klicken
Sie auf einen Link wie folgt :

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

Unter Android wird die Telefon-App aufgerufen und die Ziffern für 2125551212 ohne automatische Wahl vorab eingegeben.

Schauen Sie sich RFC3966 an

systempuntoout
quelle
Wenn Sie auf den Link klicken, leitet das iPhone den Anruf automatisch ein (automatisch). oder ist es wie Android? (Öffnen Sie den Dialer, und Sie müssen die Anruftaste drücken.)
Enrique
7
Stellen Sie sicher, dass Sie Folgendes haben: <Verwendungsberechtigung android: name = "android.permission.CALL_PHONE" /> in Ihrer Manifest.xml
jasonflaherty
24

Ich habe gerade eine App geschrieben, die einen Anruf von einer Webseite aus tätigen kann. Ich weiß nicht, ob dies für Sie von Nutzen ist, aber ich schließe trotzdem ein:

In Ihrem onCreate müssen Sie eine Webansicht verwenden und einen WebViewClient wie folgt zuweisen:

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

Behandeln Sie dann den Klick auf eine Telefonnummer wie folgt:

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

Lassen Sie mich wissen, wenn Sie weitere Hinweise benötigen.

Martyn
quelle
1
Danke - ja das ist ein guter Ansatz! Am Ende habe ich über JavaScript mit addJavascriptInterface
Kevin
20

Wenn Sie unter Android einfach die Telefonnummer anzeigen und der Benutzer darauf tippt, wird diese im Dialer angezeigt. Sie könnten es also einfach tun

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

Wenn der Benutzer auf den fett gedruckten Teil tippt, wird der Dialer angezeigt und angezeigt, da er wie eine Telefonnummer formatiert ist 4165551234 im Feld für die Telefonnummer . Der Benutzer muss dann nur noch die Anruftaste drücken.

Möglicherweise können Sie dies tun

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

beide Geräte abzudecken, aber ich bin nicht sicher, wie gut dies funktionieren würde. Ich werde es in Kürze versuchen und Sie wissen lassen.

EDIT: Ich habe es gerade auf meinem HTC Magic versucht, auf dem ein gerooteter Rogers 1.5 mit SenseUI läuft:

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>

Der erste, der den Link umgab und die Telefonnummer druckte, funktionierte perfekt. Zog den Dialer mit den Bindestrichen und allem hoch. Der zweite, der our numbermit dem Link sagte , funktionierte genauso. Dies bedeutet, dass die Verwendung <a href='tel:xxx-xxx-xxxx'>auf der ganzen Linie funktionieren sollte, aber ich würde nicht empfehlen, meinen einen Test als schlüssig zu betrachten.

Das direkte Verknüpfen mit der Nummer hat das Erwartete bewirkt: Es wurde versucht, die nicht vorhandene Datei vom Server abzurufen.

Der letzte tat, wie ich oben erwähnte, und zog den Dialer hoch, aber ohne die netten Formatierungsbindestriche.

Tarka
quelle