我使用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">
我对此很陌生,似乎无法解决这个问题。在此先感谢您的帮助。