2012-03-20 4 views
2

webviewclient를 사용하여 html 페이지를 엽니 다. HTML 페이지에 앵커 태그가 있습니다. 앵커 태그를 클릭하면 내 전화 걸기 작업이 시작됩니다. 외부 브라우저 (안드로이드 기본 브라우저)에서이 앵커 태그를 클릭하면 전화 걸기가 시작되지만 webviewclient (브라우저에서 내 애플리케이션 사용)를 사용 중입니다. 전화 걸기를 시작할 수 없습니다.Webviewclient에서 다이얼러 활동을 여는 방법은 무엇입니까?

webviewclient를 사용하여이를 수행하는 방법은 무엇입니까?

답변

1

는이 방법에게 WebViewClient에서

public boolean shouldOverrideUrlLoading(WebView wv, String url) 
{ 
    if(isNumber) 
    { 
     //Get the number from the URL 
     Intent intent = new Intent(Intent.ACTION_DIAL); 
     intent.setData(Uri.parse("tel:12345")); 
     startActivity(intent); 
     return true; 
    } 
    return false; 
} 

을 무시하고, 당신이 웹보기 대신 직접이 문제를 처리하는 것을 의미합니다 진짜야을 반환해야합니다.

문서는 here입니다.

+0

내가 일하고 그것을 가지고 .. 감사합니다 .. – RockandRoll

+0

@dreamtale : ISNUMBER 여기에 무엇입니까? 그리고 위의 메서드를 호출하는 방법? – YuDroid

+0

@YuDroid isNumber는 URL에 전화 번호가 있는지 여부를 조정하는 방법 일뿐입니다. shouldOverrideUrlLoading 메서드는 WebviewClient의 재정의 메서드입니다. 자세한 내용은 안드로이드의 문서를 방문 할 수 있습니다 (위의 답변의 마지막 참조) – dreamtale

0

이렇게하는 것이 가장 좋은 방법이라고 생각합니다. 그래서 이것을 시도하십시오, 나는이 답장을 너무 늦게 나는 알고

webView.setWebViewClient(new WebViewClient() { 

     @Override 
     public boolean shouldOverrideUrlLoading(WebView view, String url) { 
      if(URLUtil.isNetworkUrl(url)) { 
       view.loadUrl(url); 
       return false; 
      } 

      Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url)); 
      startActivity(intent); 
      return true; /* 
      return false;*/ 
     } 
관련 문제