2013-04-30 5 views
0

WebView에서 tel : 및 sms :를 시도했습니다. 나는 URL containg 전화를 클릭하면 클릭 후 : 다음 전화의 통화 유틸리티를 여는 오전. 그런 다음 문자 'N'이 뒤 따르는 숫자가 표시됩니다. SMS에서 : 전화의 SMS 유틸리티를 받고 있지만 번호는 없습니다. 두 URL 모두에 존재합니다.전화 번호에 SMS 번호 및 적절한 번호가 표시되지 않습니다.

@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

나는이 문제의 가장 큰 이유가 URL이 잘못되었다고 생각합니다. 따라서 logcat에서 확인하는 것이 좋습니다. URL은 tel:xxxxxxx이 아니어야합니다. 게다가, 코드에 몇 가지 잘못된 점이 있습니다.

먼저 "tel:"으로 시작하는 경우 ACTION_CALL 또는 ACTION_DIAL이 아닌 ACTION_VIEW을 사용해야합니다. 전화 응용 프로그램에는 ACTION_VIEW 및 데이터 스키마 전화와 함께 의도 필터가있는 구성 요소가 없기 때문에.

둘째, URL이 startsWith 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; 

} 
관련 문제