2012-06-15 5 views
4

내가 전화를 열려고하고 찾을 수 없습니다 & 흔한 : 링크 webview에서, 다음과 같은 메시지가 나타납니다안드로이드 웹보기 "전화는 :"& "흔한"링크가 웹 페이지를 표시

Web Page Not Found tel:0000000000 

작동하는 유일한 링크는 "http :"및 "https"

누구든지 도와 줄 수 있습니까? MAILTO과 :

 private class HelloWebViewClient extends WebViewClient { 
    @Override 
    public boolean shouldOverrideUrlLoading(WebView webview, String url) 
    { 
     webview.loadUrl(url); 
     return true; 
    } 
} 

@Override 
public boolean onKeyDown(int KeyCode, KeyEvent event) 
{ 
    if ((KeyCode == KeyEvent.KEYCODE_BACK) && mWebView.canGoBack()) 
    { 
     mWebView.goBack(); 
     return true; 
    } 
    return super.onKeyDown(KeyCode, event); 
} 

public boolean shouldOverrideUrlLoading(WebView webview, String url) { 
    if (url.startsWith("tel:")) { 
      Intent intent = new Intent(Intent.ACTION_VIEW, 
        Uri.parse(url)); 
      startActivity(intent); 
    }else if(url.startsWith("http:") || url.startsWith("https:") || url.startsWith("mailto:")) { 
     webview.loadUrl(url); 
    } 
    return false; 
} 

}

+0

안녕 로버트, 이것은 당신을 도울 수 있습니다 ([안드로이드 웹보기 "전화"링크가 표시 웹 페이지를 찾을 수 없음] http://stackoverflow.com/questions/4338305/android-webview-tel-links- show-web-page-not-found) –

답변

0

시도는 전화에 거짓을 반환하는 경우와 다른 지점합니다.

이렇게하면됩니다.

+0

이 옵션을 사용해도 작동하지 않습니다. – robert

+0

@ Tim Messerschmidt 코드가 업데이트되었지만 "http"링크 만 작동합니다. – robert

+0

당신은 tel의 의도를 처리합니다 : 잘못 - 다음과 같아야합니다 : Intent intent = new Intent (Intent.ACTION_DIAL, Uri.parse (url)); – Tim

1

loadUrl (url)을 호출하지 마십시오.

public boolean shouldOverrideUrlLoading(WebView webView, String url) { 

    if (url.startsWith("tel:")) { 
     Intent intent = new Intent(Intent.ACTION_VIEW, 
       Uri.parse(url)); 
     activity.startActivity(intent); 
    } 
    else{ 
     webView.loadUrl(url); 
    } 
     return true; 
    }