来自Android WebView的电话链接打开错误URL而不是电话拨号器

时间:2017-02-10 00:59:45

标签: java android webview

我使用Android Studio 2.2.3构建一个简单的webview应用程序。 webview正在浏览内容,没有任何问题。问题是webview页面中的电话链接是作为URL打开而不是启动电话的拨号器。我已经尝试了至少8个不同的代码片段,我已经在SO上找到了解决这个问题,但没有任何效果。

这是MAINACTIVITY.JAVA:     package com.appname;

import android.content.Intent;
import android.net.Uri;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;

public class MainActivity extends AppCompatActivity {

private WebView appWebView;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
appWebView = (WebView)findViewById(R.id.webView);
WebSettings webSettings = appWebView.getSettings();
webSettings.setJavaScriptEnabled(true);
appWebView.loadUrl("http://website.com”);
appWebView.setWebViewClient(new WebViewClient());
}

public boolean shouldOverrideUrlLoading(WebView view, String url) {
if (url.startsWith("tel:")) {
Intent intent = new Intent(Intent.ACTION_DIAL,
Uri.parse(url));
startActivity(intent);
}else if(url.startsWith("http:") || url.startsWith("https:")) {
view.loadUrl(url);
}
return true;
}


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

}

}

...并且所有电话链接的格式为:

<a href="tel:1234567890" launch-external="true">

我对此很陌生,似乎无法解决这个问题。在此先感谢您的帮助。

0 个答案:

没有答案
相关问题