2013-09-25 2 views
0

У меня есть телефонная ссылка на мое приложение для веб-просмотра: tel:062123658, но когда я нажимаю на нее, я получаю веб-страницу не найден.Телефонная ссылка в webview открывается в браузере

Это мой код:

public class FullscreenActivity extends Activity { 

    private WebView webView; 

    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_fullscreen); 

     webView = (WebView) findViewById(R.id.webView); 
     webView.setWebViewClient(new myWebClient()); 
     webView.loadUrl("http://www.mywebsite.nl"); 
     webView.setVerticalScrollBarEnabled(false); 
    } 

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

Как я могу это исправить?

ответ

1

Вы должны переопределить функцию в WebViewClient:

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_fullscreen); 

    webView = (WebView) findViewById(R.id.webView); 
    webView.setWebViewClient(new myWebClient()); 
    webView.loadData("Hello World, <a href=\"tel:3174562564\">317.456.2564</a> ", "text/html","utf-8"); 
    //webView.loadUrl("http://www.techjini.com/contactus.html"); 
    webView.setVerticalScrollBarEnabled(false); 
} 

class myWebClient extends WebViewClient { 
    @Override 
    public boolean shouldOverrideUrlLoading(WebView view, String url) { 
      if (url.startsWith("tel:")) { 
       Intent intent = new Intent(Intent.ACTION_DIAL, 
         Uri.parse(url)); 
       startActivity(intent); 
     }else if(url.startsWith("http:") || url.startsWith("https:")) { 
      view.loadUrl(url); 
     } 
     return true; 
    } 
} 
0

Попробуйте так:

webView.setWebViewClient(new WebViewClient() { 
    public boolean shouldOverrideUrlLoading(WebView view, String url) { 

     if (url.startsWith("tel:")) { 
      Intent intent = new Intent(Intent.ACTION_DIAL, 
        Uri.parse(url)); 
      startActivity(intent); 
     }else if(url.startsWith("http:") || url.startsWith("https:")) { 
      view.loadUrl(url); 
     } 
     return true; 
    } 
});