Как реализовать URL "tel:" в Webview - PullRequest
0 голосов
/ 24 января 2019

Я создаю приложение Webview, которое отображает мой веб-сайт.Мой веб-сайт содержит номер мобильного телефона, по которому можно кликать. Мне нужно открывать номеронабиратель, когда пользователь нажимает на него.

Я прошел этот вопрос .

Поскольку я новичок в Androidразработка Я не знаю точно, куда вставить этот код.

Вот мой Mainactivity.java код

public class MainActivity extends AppCompatActivity {

private WebView webView;
private ProgressBar mProgressBar;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    webView= findViewById(R.id.web);
    mProgressBar= findViewById(R.id.progressbar);
    mProgressBar.setMax(100);

    webView.loadUrl("https://");
    webView.getSettings().setJavaScriptEnabled(true);
    webView.setWebViewClient(new WebViewClient());

    webView.setWebChromeClient(new WebChromeClient(){

        @Override
        public void onProgressChanged(WebView view, int newProgress) {
            super.onProgressChanged(view, newProgress);
            mProgressBar.setProgress(newProgress);
        }

        @Override
        public void onReceivedTitle(WebView view, String title) {
            super.onReceivedTitle(view, title);
        }

        @Override
        public void onReceivedIcon(WebView view, Bitmap icon) {
            super.onReceivedIcon(view, icon);
        }
    });

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

1 Ответ

0 голосов
/ 24 января 2019

Вам необходимо Override метод shouldOverrideUrlLoading() в setWebViewClient()

ОБРАЗЕЦ КОДА

  webView.setWebChromeClient(new WebChromeClient() {
     public void onProgressChanged(WebView view, int progress) {
        progressBar.setProgress(progress);
     }
   });


    webView.setWebViewClient(new WebViewClient() {

        @Override
        public void onPageStarted(WebView view, String url, Bitmap favicon) {
            super.onPageStarted(view, url, favicon);               

        }
        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            if(url.contains("tel:"))
            {
                Intent intent = new Intent(Intent.ACTION_DIAL);
                intent.setData(Uri.parse(url));
                startActivity(intent);
                return true;
            }else {
                progressBar.setVisibility(view.VISIBLE);
                view.loadUrl(url);
                return true;
            }
            return true;
        }

        @Override
        public void onPageFinished(WebView view, String url) {

            progressBar.setVisibility(View.GONE);
        }
    });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...