我创建了一个WebView,我无法弄清楚如何处理像sms这样的href链接:或tel:等等。
Μy代码不起作用:
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
boolean result;
result = false;
// for telephone
if (url.startsWith("tel:")) {
view.getContext().startActivity(
new Intent(Intent.ACTION_CALL, Uri.parse(url)));
result = true;
}
// for SMS or message.
if (url.startsWith("sms:")) {
view.getContext().startActivity(
new Intent(Intent.ACTION_VIEW, Uri.parse(url)));
Intent.addCategory(Intent.CATEGORY_DEFAULT);
Intent.addCategory(Intent.CATEGORY_BROWSABLE);
result = true;
}
return result;
}
答案 0 :(得分:0)
您设置了默认的WebView客户端:
webview.setWebViewClient(new WebViewClient());
应该是你自己的实现:
webview.setWebViewClient(new myWebViewClient());
(请参阅提供的完整代码:http://pastebin.com/qfpQfdv8)
其余的应该可以正常工作,您的代码会正确检查sms和tel URI。
答案 1 :(得分:-2)
尝试这样,
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;
}