WebView里面调用打电话

web.loadUrl(url);
web.setWebViewClient(new WebViewClient() {
public boolean shouldOverrideUrlLoading(WebView view, String url) { // 重写此方法表明点击网页里面的链接还是在当前的webview里跳转,不跳到浏览器那边
// 判断用户单击的是那个超连接
String tag = "tel";
if (url.contains(tag)) {
String mobile = url.substring(url.lastIndexOf("/") + 1);
Log.i("add", mobile);
Uri uri = Uri.parse(mobile);//我这个mobile是已经是“tel:xxxx”的格式了,如果不是 这个格式就要写成Uri uri = Uri.parse(“tel:”+mobile)
Intent intent = new Intent(Intent.ACTION_VIEW, uri);
startActivity(intent);
// 这个超连接,java已经处理了,webview不要处理了
} else {
view.loadUrl(url);
}


return true;
}
});

}


今天在这里栽了个跟头 ,我直接调用了Intent.ACTION_CALL 结果就报错了 

'[FATAL:jni_android.cc(295)] Check failed: false. Please include Java exception stack in crash report
我找了半天 有的说是在Activity里面的onDestroy()里面吧WebView onDestroy掉 试了不行。原来 在 shouldOverrideUrlLoading()这个里面不能直接拨打电话 只能调出系统的拨号键盘界面Intent.ACTION_VIEW 。

你可能感兴趣的:(WebView里面调用打电话)