在android webview中的短信链接

时间:2014-10-31 11:32:46

标签: java android webview

我创建了一个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;

    }

2 个答案:

答案 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;
    }