2012-06-15 3 views
4

Я пытаюсь открыть тел: & электронной почта: ссылка с webview и получить следующее сообщение:WebView «тела:» Android и «электронная почта:» ссылка показать веб-страницу не найдены

Web Page Not Found tel:0000000000 

Единственная ссылка, которая работает «http:» и «https»

Может ли кто-нибудь мне помочь?

 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

Эй Роберт, это может помочь вам: [Android WebView «тел:» ссылки показать веб-страница не найдена] (http://stackoverflow.com/questions/4338305/android-webview-tel-links- show-web-page-not-found) –

ответ

0

Попытка вернуть ложное к телам: и электронной почте: если и еще если ветви.

Это должно сработать.

+0

даже с этой опцией не работает – robert

+0

@ Tim Messerschmidt i обновил код, работают только ссылки «http», любые предложения? – robert

+0

Вы обрабатываете намерение для телефона: неправильно - оно должно выглядеть следующим образом: Цель намерения = новое намерение (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; 
    }