Могу ли я позвонить по телефону из HTML на Android?

84

Для того, чтобы сделать телефонный звонок через HTML на iPhone я создать <A/>тег с HREF отформатированный как: <a href='tel:123-555-1212'>Dial Me</a>.

Есть ли на Android аналог HTML?

УТОЧНЕНИЕ - использование формата href = 'tele: 123-555-1212' действительно работает на android. Я тестировал приложение в собственной оболочке Java на устройстве. Не похоже, что мы можем выполнить вызов из веб-приложения, размещенного в Native Wrapper.

Кевин
источник

Ответы:

128

Да, ты можешь; он работает и на Android :

tel: phone_number Позвонить
по введенному номеру телефона. Принимаются действительные телефонные номера, определенные в IETF RFC 3966. Допустимые примеры включают следующее:

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

Браузер Android использует приложение «Телефон» для обработки схемы «tel», как это определено в RFC 3966.
Щелчок по такой ссылке:

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

на Android откроется приложение "Телефон" и предварительно введет цифры для номера 2125551212 без автоматического набора.

Взгляните на RFC3966

systempuntoout
источник
при нажатии на ссылку iphone автоматически звонит (автодозвон)? или это как Android? (откройте звонилку, и нужно нажать кнопку вызова).
Энрике
7
Убедитесь, что у вас есть это: <uses-permission android: name = "android.permission.CALL_PHONE" /> в вашем Manifest.xml
jasonflaherty
25

Я только что написал приложение, которое может звонить с веб-страницы - я не знаю, пригодится ли это вам, но я все равно включаю:

в вашем onCreate вам нужно будет использовать веб-просмотр и назначить WebViewClient, как показано ниже:

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

затем обработайте щелчок по номеру телефона следующим образом:

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

Дайте мне знать, если вам понадобится больше указателей.

Мартын
источник
1
Спасибо - да, это хороший подход! Я закончил тем, что добавил доступ к своему приложению из JavaScript с addJavascriptInterface
Кевин
21

Как правило, на Android, если вы просто отображаете номер телефона, и пользователь нажимает на него, он будет отображать его в программе набора номера. Итак, вы могли бы просто сделать

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

Когда пользователь нажимает полужирный шрифт, поскольку он отформатирован как номер телефона, номеронабиратель всплывает и отображается 4165551234в поле номера телефона. Затем пользователю просто нужно нажать кнопку вызова.

Вы могли бы сделать

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

чтобы охватить оба устройства, но я не уверен, насколько хорошо это сработает. Я попробую в ближайшее время и дам вам знать.

РЕДАКТИРОВАТЬ: Я только что попробовал это на своем HTC Magic, на котором запущен Rogers 1.5 с root-доступом с 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>

Первый, окружающий ссылку и выводящий номер телефона, работал отлично. Вытащил звонилку с дефисами и все. Второй, говоря our numberсо ссылкой, работал точно так же. Это означает, что использование <a href='tel:xxx-xxx-xxxx'>должно работать повсеместно, но я бы не советовал считать свой единственный тест окончательным.

Прямая ссылка на номер дала ожидаемый результат: попытка загрузить несуществующий файл с сервера.

Последний сделал, как я упоминал выше, и поднял номеронабиратель, но без хороших дефисов форматирования.

Тарка
источник