2013-04-30 129 views
0

我试过电话:和短信:在WebView中。点击后,如果我得到URL包含电话:那么我打开电话的实用工具。然后我得到数字后跟字符'N'。 一个在短信:我越来越短信实用的手机,但没有号码。在这两个URL号码是存在的。未收到短信中的电话号码和电话号码中的正确号码

@Override 
    public boolean shouldOverrideUrlLoading(WebView view, String url) { 
     result = false; 
     // for telephone 
     if (url.contains("tel:")) { 
      view.getContext().startActivity(
        new Intent(Intent.ACTION_VIEW, Uri.parse(url))); 
      result = true; 
     } 



     // for SMS or message. 
     if (url.contains("sms:")) { 
      view.getContext().startActivity(
        new Intent(Intent.ACTION_VIEW, Uri.parse(url))); 
      result = true; 
     } 
     Log.d(TAG, url); 
     return result; 

    } 

回答

0

我认为这个问题最可能的原因是你的网址不正确。所以你最好在logcat中检查它。该网址应该是tel:xxxxxxx没有别的。此外,在您的代码中有几件事情不正确。

首先,当url以“tel:”开头时,您应该使用ACTION_CALLACTION_DIAL而不是ACTION_VIEW。因为Phone应用程序中没有包含ACTION_VIEW和数据模式tel的意向过滤器的组件。

其次,你应该验证网址是不是包含了tel:sms:

例如:

public boolean shouldOverrideUrlLoading(WebView view, String url) { 
    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))); 
     result = true; 
    } 
    Log.d(TAG, url); 
    return result; 

}