wv_main = find(R.id.wv_main);//实例化webview
wv_main.loadUrl(url);//启用支持javascriptWebSettings settings = wv_main.getSettings();settings.setJavaScriptEnabled(true);
//覆盖WebView默认使用第三方或系统默认浏览器打开网页的行为,使网页用WebView打开wv_main.setWebViewClient(new WebViewClient() {@Override public boolean shouldOverrideUrlLoading(WebView view, String url) {Log.e("用户单击超连接", url); //判断用户单击的是那个超连接 String tag = "tel"; if (url.contains(tag)) {String mobile = url.substring(url.lastIndexOf("/") + 1); Log.e("mobile----------->",mobile); Intent mIntent = new Intent(Intent.ACTION_CALL); Uri data = Uri.parse(mobile); mIntent.setData(data);
//Android6.0以后的动态获取打电话权限 if (ActivityCompat.checkSelfPermission(MainActivity.this, android.Manifest.permission.CALL_PHONE) == PackageManager.PERMISSION_GRANTED) {startActivity(mIntent);//这个超连接,java已经处理了,webview不要处理return true; }else{
//申请权限ActivityCompat.requestPermissions(MainActivity.this, new String[]{Manifest.permission.CALL_PHONE},1);return true; }}return true; }
}
为适应Android6.0以前版本在manifest中添加打电话权限
<uses-permission android:name="android.permission.CALL_PHONE"/>