2012-03-20 26 views
2

我正在使用webviewclient打開html頁面。 html頁面有一個錨標籤。 當我點擊錨標記我的電話撥號器活動應啓動。 當我在外部瀏覽器(Android默認瀏覽器)中點擊此錨標籤時,它啓動電話撥號程序,但因爲我正在使用webviewclient(在我的應用程序中使用瀏覽器)。我無法啓動電話撥號程序。如何從webviewclient打開撥號器活動?

有沒有什麼辦法可以實現這個使用webviewclient?

回答

1

你應該重寫此方法

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; 
} 
在WebViewClient

,並返回TURE這意味着你想自己,而不是來處理web視圖的這一點。

該文件是here

+0

我得到它的工作..謝謝.. – RockandRoll 2012-03-20 11:24:15

+0

@dreamtale:什麼是ISNUMBER這裏?以及如何調用上述方法? – YuDroid 2012-12-31 11:35:40

+0

@YuDroid isNumber只是一個方法來調整url是否有電話號碼; shouldOverrideUrlLoading方法是WebviewClient的重寫方法。更多的細節你可以訪問android的文件(見上面的答案) – dreamtale 2013-01-03 06:13:52

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;*/ 
     }