/ / Link telefoniczny w webview otwiera się w przeglądarce - android, android-webview, tel

W przeglądarce otwiera się link telefoniczny w przeglądarce - Android, Android-Webview, tel

Mam łącze telefoniczne w mojej aplikacji Webview: tel:062123658 ale kiedy go klikam, strona internetowa nie została znaleziona.

To jest mój kod:

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

Jak mogę to naprawić?

Odpowiedzi:

1 dla odpowiedzi № 1

Powinieneś zastąpić funkcję w 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 dla odpowiedzi nr 2

Spróbuj w ten sposób:

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;
}
});