alexToster
@alexToster

Android. Как из WebView открыть ссылку типа tel:// (телефон)?

Есть мини-приложение, которое состоит из WebView. (открывается сайт в нем, а сайт как бы и есть приложение).
И ссылки типа tel:// (номер телефона) не открываются, в самом приложении пишется что документ недоступен (т.е. пытается открыть как страницу).

В приложении всего пара функций

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        webView = (WebView)findViewById(R.id.webView);
        webView.clearCache(true);
        webView.clearHistory();
        webView.getSettings().setJavaScriptEnabled(true);
        webView.loadUrl(url);
        webView.setWebViewClient(new WebViewClient());

    }

    @Override
    public void onBackPressed(){
        if(webView.canGoBack()){
            webView.goBack();
        }else {
            super.onBackPressed();
        }
    }


Вот как бы сделать так, что бы по переходу по ссылки типа tel:// в приложении, тело ссылки передавалось в приложение телефон.
  • Вопрос задан
  • 1204 просмотра
Пригласить эксперта
Ответы на вопрос 1
402d
@402d
начинал с бейсика на УКНЦ в 1988
Немного корявый язык . Лучше быстро не нагуглилось :
www.ohandroid.com/setwebviewclient-setwebchromecli...
WebViewClient – это интерфейс событий. Предоставляя собственную реализацию WebViewClient, вы можете реагировать на события рендеринга. Например, вы можете обнаружить, когда рендер начинает загружать изображение с определенного URL-адреса или решает, повторно отправить запрос POST на сервер.

У WebViewClient есть много методов, которые вы можете переопределить, большинство из которых вы не будете иметь дело. Однако вам нужно заменить стандартную реализацию shouldOverrideUrlLoading(WebView, String) для shouldOverrideUrlLoading(WebView, String) . Этот метод определяет, что произойдет, когда новый URL-адрес будет загружен в WebView, например, нажав ссылку. Если вы вернете true, вы говорите: «Не обрабатывайте этот URL-адрес, я сам обрабатываю его». Если вы вернете false, вы говорите: «Идите и загрузите этот URL-адрес, WebView, я ничего с ним не делаю «.

Вторая часть для решения
url.startsWith("tel")
Третья часть для решения
Intent intent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:" + "Your Phone_number"));
startActivity(intent);

"tel:" + "Your Phone_number" уже в нужном виде в переменной url
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы